我需要找到一种多值参数的方法来过滤我的报告,在查询中我有一个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 '%") & "%'"但我不清楚如何实现这一目标。
如何为器官参数选择多个值,并在查询中使用LIKE语句筛选表?谢谢。
发布于 2019-10-25 18:43:52
我将使用CHARINDEX在Join中找到REFERRAL_ORGANS (参数!ORGAN.Label,“\”)。
&"WHERE CHARINDEX(F.REFERRAL_ORGANS'" & Join(Parameters!ORGAN.Label, "|") & "') > 0 ...如果REFERRAL_ORGANS是而不是,则CHARINDEX将返回0,这是在器官参数标签的连接字符串中找到的,因此您的表达式将查找大于一个的字符串。
https://stackoverflow.com/questions/58561540
复制相似问题