Sql server 2008 如何在int列的字符串值语句中使用SQL?

Sql server 2008 如何在int列的字符串值语句中使用SQL?,sql-server-2008,Sql Server 2008,对于我无法控制的情况,我有一系列值: @param1 = "1,2,3,4"; 如何在语句中检查字符串@param1中是否有ID 所以,它看起来像这样: select * from table1 where ID IN (@param1); 通常,我想我应该有这个: select * from table1 where ID IN (1,2,3,4); 但不幸的是,在我的情况下,我没有这个,相反,我只有一个字符串类型的参数,所有ID都连接在一起,我如何从中选择行?您可以使用动态生成的SQL

对于我无法控制的情况,我有一系列值:

@param1 = "1,2,3,4";
如何在语句中检查字符串@param1中是否有ID

所以,它看起来像这样:

select * from table1 where ID IN (@param1);
通常,我想我应该有这个:

select * from table1 where ID IN (1,2,3,4);

但不幸的是,在我的情况下,我没有这个,相反,我只有一个字符串类型的参数,所有ID都连接在一起,我如何从中选择行?

您可以使用动态生成的SQL语句():

其思想是通过将ID列表连接到SQL语句中,在字符串变量中构建SQL语句。最终语句与预期查询类似:

select * from table1 where ID IN (1,2,3,4)

然后可以使用SQL命令运行字符串变量的内容。

我的查询非常长。。。您是否可以将@param1动态查询分离到它自己的查询中?
select * from table1 where ID IN (1,2,3,4)