You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SSRS中通过筛选器实现多值参数的文本包含搜索?

SSRS多值参数模糊匹配筛选解决方案

针对多值参数需要模糊匹配(LIKE)筛选的场景,提供以下几种可行方案:

方案一:数据集SQL查询直接处理(SQL Server数据源)

利用SQL的字符串拆分函数,将多值参数拆分为单个值后,逐一匹配目标列:

SELECT * 
FROM 你的数据表名
WHERE EXISTS (
    SELECT 1 
    FROM STRING_SPLIT(@PAR, ',') AS 参数拆分表
    WHERE 目标列名 LIKE '%' + 参数拆分表.value + '%'
)

注:若使用SQL Server 2016之前的版本,STRING_SPLIT不可用,可替换为自定义字符串拆分函数或XML拆分方式。

方案二:Tablix筛选器结合自定义代码

通过报表自定义代码实现“列值包含任意参数值”的判断:

  1. 打开报表属性 → 代码,添加以下VB代码:
Function ContainsAny(targetStr As String, paramValues As Object()) As Boolean
    For Each val As String In paramValues
        If InStr(targetStr, val) > 0 Then
            Return True
        End If
    Next
    Return False
End Function
  1. 进入Tablix的筛选器设置,添加新筛选规则:
    • 表达式:=Code.ContainsAny(Fields!目标列名.Value, Parameters!PAR.Value)
    • 运算符:=
    • 值:True

方案三:添加“全部”选项优化参数逻辑

在多值参数中新增“全部”选项,让用户可选择返回所有数据或匹配指定值:

  1. 参数设置中,将“全部”加入可用值列表,值设为自定义标识(如ALL)
  2. 修改数据集查询:
SELECT *
FROM 你的数据表名
WHERE 
    (@PAR = 'ALL' OR EXISTS (
        SELECT 1 FROM STRING_SPLIT(@PAR, ',') AS p WHERE 目标列名 LIKE '%' + p.value + '%'
    ))

内容的提问来源于stack exchange,提问作者Petersselorse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 21:30:42