我需要找到一种用于多值参数的方法,以在查询中有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语句过滤表?谢谢。
我将使用CHARINDEX在Join(Parameters!ORGAN.Label,“ |”)中找到REFERRAL_ORGANS。
&"WHERE CHARINDEX(F.REFERRAL_ORGANS'" & Join(Parameters!ORGAN.Label, "|") & "') > 0 ...
如果在ORGAN参数标签的串联字符串中找到REFERRAL_ORGANS not,则CHARINDEX将返回0。