【发布时间】:2019-10-25 15:31:04
【问题描述】:
我需要为多值参数找到一种方法来过滤我的报告,其中我在查询中有 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 语句过滤表?谢谢。
【问题讨论】:
-
你熟悉sql函数吗?如果是这样,我会尝试一个表值函数。请参阅文章:sqlservertutorial.net/sql-server-user-defined-functions/… 通过这个函数,我会对您的原始数据集进行交叉应用以获取您正在搜索的值。我不能 100% 确定这会奏效,但它可能...如果您提供示例数据集和结果集,我可能会提供更好的帮助。
-
嘿,谢谢。我将研究 SSRS 中的表值函数。我无法提供示例,但如果我能让它工作,我会回来提供代码。
标签: sql reporting-services ssrs-2016