【问题标题】:SSRS selecting results based on comma delimited listSSRS 基于逗号分隔列表选择结果
【发布时间】:2018-03-09 21:52:03
【问题描述】:

我有一个将 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时,这是不带引号的
  • 您是在传递 '1,2,3' 作为单个字符串还是传递来自多值参数的值列表?如果您使用的是多值参数,那么您尝试执行的操作应该有效,如果您传递的是单个字符串,那么您必须将它们转换为表格。如果您进行快速搜索,有很多 SQL Server 2008 的拆分函数示例。

标签: sql-server-2008 reporting-services ssrs-2008


【解决方案1】:

由于 SSRS 会以逗号分隔列表的形式返回 @ID,因此最好的方法是通过 charindex 进行搜索,如下所示:

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

【讨论】:

    猜你喜欢
    • 2018-05-01
    • 2016-04-02
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多