我必须运行一个简单的查询,如select * from table_a where col1 in (val1,val2, ..., valn)
,具有非常大量的值,数量级为数万。这些值是从日志中提取的,可以是任何字母数字字符串,例如001034abz10t
在SQL Server Management Studio中,我可以复制粘贴到查询字符串中的值的数量是有限的,因此我必须将原始值集分解为较小的集,并使用每个集运行查询。
是否有一种方法可以做到只有一个查询无论是在SSMS或从命令行使用sqlcmd或任何其他工具?对于SQLCMD,可以通过-v参数传递给脚本的变量的长度有限制。将有一个变量将val1, val2,...valn
的所有值表示为单个字符串。
我也必须在DB2和Oracle上运行类似的查询,所以任何关于交互或从命令行进行查询的信息将非常感谢!
yes
-
创建一个表并把你的值放在那里
-
然后使用:
select * from table_a where col1 in ( select val from newtablename)