Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 基于逗号分隔列表的SSRS选择结果_Sql Server 2008_Reporting Services_Ssrs 2008 - Fatal编程技术网

Sql server 2008 基于逗号分隔列表的SSRS选择结果

Sql server 2008 基于逗号分隔列表的SSRS选择结果,sql-server-2008,reporting-services,ssrs-2008,Sql Server 2008,Reporting Services,Ssrs 2008,我有一个将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 typ

我有一个将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

尝试不带单引号输入SSRS时,这是不带引号的输入您是将“1,2,3”作为单个字符串传递,还是从多值参数传递值列表?如果您使用的是多值参数,那么您尝试执行的操作应该有效,如果您传递的是单个字符串,那么您必须将它们转换为表。如果您进行快速搜索,SQL Server 2008中有很多拆分函数的示例。