sql-server-2008-SSRS根据逗号分隔列表选择结果

我有一个将ID存储为INT的表,例如表A:

|  ID  |  Name
   1       A
   2       B
   3       C

我有一个查询:

SELECT * FROM A WHERE ID IN (@ID)

此变量@ID来自SSRS输入参数部分上的逗号分隔列表.输入将类似于1,2,3

运行此命令时,出现以下错误:

Conversion failed when converting the nvarchar value '1,2,3' to data type int.

有什么想法吗?

最佳答案
由于SSRS将以逗号分隔的列表形式返回@ID,所以最好的方法可能是通过charindex搜索,如下所示:

select * from A 
Where charindex(','+cast(id as varchar(max))+',' , ','+@ID+',',1)>0

转载注明原文:sql-server-2008-SSRS根据逗号分隔列表选择结果 - 代码日志