【问题标题】:TSQL / SSRS : Using LIKE with multi-valued parametersTSQL / SSRS:将 LIKE 与多值参数一起使用
【发布时间】:2015-04-06 23:28:59
【问题描述】:
我正在尝试确定使用 LIKE 和多值参数过滤记录的解决方案。在一个简单的示例中,用户希望通过在 SSRS 报告的参数窗口中输入以下内容来返回一组 5 位数的对象代码:
@parm_Object
1,24,333,34567
理想情况下,这将返回满足以下条件的对象代码:
1 : 所有以“1”开头的对象代码
24:所有以“24”开头的对象代码
333:类似
34567:对象代码“34567”
我想我的出发点是确定这是否可以在实际查询中处理,或者我应该在 SSRS 端进行处理。
【问题讨论】:
标签:
tsql
reporting-services
ssrs-2008-r2
【解决方案1】:
一般的良好做法是尽快删除不需要的数据。所以这将在查询中。
SSRS 多值参数将在查询中显示为逗号分隔列表。
第一步是从这个逗号分隔的列表中得到一个表(或表函数),然后你可以加入这个表并应用like运算符
例如
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS a
INNER JOIN dbo.split1('test,fafa,tata') b
ON 1=1
WHERE a.COLUMN_NAME like b.Value + '%'
将返回列名以 test、fafa 或 tata 开头的行。 dbo.split1 函数,您必须自己编写或从互联网上获取。例如 Tab Alleman 建议的链接。