带有Like语句的SSRS参数的多个值

问题描述 投票:0回答:1

我需要找到一种用于多值参数的方法,以在查询中有LIKE语句的情况下过滤报告。

我有一个参数,可为我提供一个器官列表(肝,肾,心脏),我可以在其中选择多个值。我需要影响两列(referral_organs和registration_organs)。可以在同一单元格中有两个器官进行转诊或注册-例如,每列中可以有一个“肝脏/肾脏”或“肺/肝脏”值。为了解决这个问题,我在WHERE子句中使用了LIKE语句:

WHERE (F.REFERRAL_ORGANS LIKE '%' + @ORGAN + '%' OR F.REGISTERED_ORGANS LIKE '%' + @ORGAN + '%')

我的器官列表来自另一个数据集。

这对选择的一个器官很有用,但在选择多个器官时失败。

我在这里找到了一个相当接近的解决方案:https://dba.stackexchange.com/questions/162845/multi-values-for-ssrs-parameter-with-like-statement

但是此解决方案要求为您的数据集输入表达式,而不是像这样的查询

="SELECT "
&     "[NationalIDNumber],"
&      "[JobTitle]"
&"FROM [AdventureWorks2014].[HumanResources].[Employee]"
&"WHERE [JobTitle] LIKE '%" & Join(Parameters!jobtitle.Label, "%' OR [JobTitle] LIKE '%") & "%'"

但是我不清楚如何实现。

我如何为Organ参数选择多个值,并在查询中使用LIKE语句过滤表?谢谢。

sql reporting-services ssrs-2016
1个回答
0
投票

我将使用CHARINDEX在Join(Parameters!ORGAN.Label,“ |”)中找到REFERRAL_ORGANS。

&"WHERE CHARINDEX(F.REFERRAL_ORGANS'" & Join(Parameters!ORGAN.Label, "|") & "') > 0 ...
如果在ORGAN参数标签的串联字符串中找到REFERRAL_ORGANS

not,则CHARINDEX将返回0。

© www.soinside.com 2019 - 2024. All rights reserved.