[英]SQL - SSRS Search for list of values using LIKE
首先,我将向您展示示例数据,预期的输入和输出:
VALUE1 | QTY
-------------
111-01 | 5
111-02 | 3
111-03 | 2
112-01 | 4
用户的预期输入为VALUE1或VALUE1的列表(在SSRS多值中,变量TEXT)。
预期输出是例如用户为每个VALUE1选择的QTY的总和,但有此条件
like SUBSTRING(VALUE1,1,3)+'%'
在这种情况下,用户选择111-01的输出为
VALUE1 | QTY
-------------
111 | 10
到目前为止,在IN语句中似乎像LIKE运算符。 我发现唯一的解决方案是从SSRS拆分参数并做一些循环(伪代码)
foreach @parameter in @parameter.Split
where VALUE1 like '@parameter[0]'+'%' or ...
我认为还有一些更优雅的解决方案。 无论如何,这种解决方案确实很慢。 我对SSRS经验不足,因此也许可以在创建数据集后进行一些分组来解决。
可能您可能想尝试:
伪代码:
WITH condition AS ( SELECT SUBSTRING(c.SplitValue, 1, 3) Criteria FROM dbo.fncSplit('111-1,112-2,113-3,114-4,115-1,116-1', ',') c ) SELECT SUM(t.QTY) FROM dbo.tblTest t INNER JOIN condition con ON con.Criteria = SUBSTRING(t.Value1, 1, 3)
尝试在表上进行全文索引,可能会提高性能
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.