SSRS基于逗号分隔列表和like语句选择结果

时间:2017-11-17 11:52:58

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

根据我的问题SSRS selecting results based on comma delimited list

是否可以这样做,但不是像EQUALS这样做,可以按照以下方式完成吗?
      WHERE value like 'abc%','def%'

需要注意的一点是%未包含在列表中。

1 个答案:

答案 0 :(得分:0)

一种选择是将传入的SSRS变量(CSV)拆分为表并加入

DECLARE @tab TABLE (Col1 NVARCHAR(200))
INSERT INTO @tab (Col1)
VALUES (N'abc'),(N'def'),(N'xyz'),(N'nop'),(N'ghi'),(N'lmn')

DECLARE @substrings NVARCHAR(200) = 'abc,def,ghi'

;WITH cteX
AS(   --dynamically split the string
    SELECT Strings = y.i.value('(./text())[1]', 'nvarchar(4000)')
    FROM 
    ( 
    SELECT x = CONVERT(XML, '<i>' 
        + REPLACE(@substrings, ',', '</i><i>') 
        + '</i>').query('.')
    ) AS a CROSS APPLY x.nodes('i') AS y(i)
) 
SELECT
    T.*
FROM @tab   T
INNER JOIN cteX X ON X.Strings = T.Col1

给出以下结果

enter image description here