在 Sql Server Reporting Services 查询中组合“like”和“in”?

2024-01-26

以下内容不起作用,但我正在寻找类似的东西。

select *
from Products
where Description like (@SearchedDescription + %)

SSRS 在参数前面使用 @ 运算符来模拟“in”,并且我没有找到将字符串与字符串列表匹配的方法。


关于如何将 LIKE 运算符与参数一起使用,有几个选项。

OPTION 1

如果将 % 添加到参数值,则可以自定义 LIKE 过滤器的处理方式。例如,您的查询可能是:

 SELECT name
 FROM master.dbo.sysobjects
 WHERE name LIKE @ReportParameter1

为了使数据集正确使用 LIKE 语句,您可以使用像 sysa% 这样的参数值。当我使用此代码在 SSRS 2008 中测试示例报告时,我返回了以下四个表:

 sysallocunits
 sysaudacts
 sysasymkeys
 sysaltfiles

OPTION 2

另一种不需要用户添加任何“%”符号的方法是生成一个包含代码的变量并执行该变量。

 DECLARE @DynamicSQL NVARCHAR(MAX) 

 SET @DynamicSQL = 
 'SELECT  name, id, xtype
 FROM dbo.sysobjects
 WHERE name LIKE ''' + @ReportParameter1 + '%''
 '

 EXEC (@DynamicSQL)

这将使您更好地控制如何使用 LIKE 语句。如果您不希望用户注入任何其他运算符,那么您始终可以添加代码来删除非字母数字字符,然后再将其合并到最终查询中。

OPTION 3

您可以创建一个控制此功能的存储过程。我通常更喜欢使用存储过程作为 SSRS 的数据源,并且从不允许动态生成 SQL,但这只是我的偏好。这有助于在执行依赖性分析检查时提高可发现性,并且还允许您确保最佳的查询性能。

OPTION 4

创建有助于动态生成 SQL 代码的 .NET 代码程序集。我认为这太过分了,充其量也是一个糟糕的选择,但它可以想象得到。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Sql Server Reporting Services 查询中组合“like”和“in”? 的相关文章

  • 如何允许多个参数为空值

    我在 SSRS 报表生成器中的报表有多个参数 如果不需要选择 我希望所有参数都允许空白值 但是当我尝试运行报告时 第一个参数将允许空 空白值 并且它将提示我输入其余参数 有没有办法解决 Set Allow Blank Value and o
  • ssrs 报告中的格式编号

    argh 受不了我自己也想不通 我在报告中的数字格式中使用了它 0 00 0 00 格式为 1 212 89 这不完全是我想要的 因为我想要 1 212 89 无论服务器的区域设置如何 所以我尝试了这个 0 00 0 00 但这给了我这个
  • SSRS 聚合聚合

    这两天我都在用头撞墙 我的场景是这样的 我有一个记录集 在 SSRS 表中分为 4 组 他们是 StartPeriod gt Area gt Job gt Details 相关列包含两个不同的记录计数 一个是有错误的记录数 另一个是该组的记
  • T-sql:获取列的总和

    我有一张如下所示的表 W1 W2 w3 Gold 10 2 3 Silver 3 1 1 但我需要一个结果 W1 W2 w3 Gold 10 12 15 Silver 3 4 5 有什么方法可以得到这个结果吗 Mysql查询 SELECT
  • 页脚中的 SSRS 页码

    我希望不包含报告前 10 页 即第 1 10 页 的页码 在页脚中 第 1 页应为 i 第 2 页应为 ii 第 3 页应为 iii 依此类推 以罗马数字表示 当到达第 11 页时 应重置页码 有谁知道我可以用什么表达来实现这一目标 因此
  • 使用表达式动态决定打开哪个子报表

    我有一份报告 其中包含几页带有图表 表格等的内容 该报告由总是希望对报告进行小修改的不同客户使用 目前 如果客户想要对第 5 页进行更改 则会通过修改重新创建整个报告 即使唯一的更改是在第 5 页的图表中 更重要的是 一些客户不想看到第 3
  • PHP ASCII 表库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有一个事实上的标准库用于在 PHP 中创建 ASCII 表 我想要一些 PHP 代码 当传递数组或其
  • 尝试从 Business Intelligence Studio 预览报表时出现错误“子报表‘Subreport1’的数据检索失败”

    我知道以前曾有人问过这个问题 但所有问题都是针对使用 C 或 VB NET 代码访问的报告 我的问题是 我正在使用商业智能工作室构建和访问报告 我基本上是在尝试为报告添加子报告 并且我从参数中确保它们没问题 但是 当我尝试访问包含子报表的报
  • SSRS 报告服务 - 字符串中的粗体字

    出版物 如何在字符串中加粗作者姓名 如果返回 1 个值 但它是一个字符串 情况会是这样的 iif Fields Author Value Parameters 5aAuthor Value Bold Normal 示例 作者 年份 标题 期
  • SSRS ReportViewer 与 XML 嵌入数据源相关的问题

    我有 C WPF 应用程序 我想在 ReportViewer 控件中显示 SSRS 报告 本地报告文件中嵌入了 XML 数据源 从 SQL Server Business Intelligence Development Studio 运行
  • 如何将SSRS共享数据集和数据源直接导入BIDS 2008?

    Using SSRS 报表服务器 10 50 1600 1 BIDS Visual Studio 9 0 30729 4462 来自同一域和网络上的远程客户端 不在 SSRS 服务器上本地 我希望能够将报表服务器上的现有共享数据源和共享数据
  • IN 子句中带有参数列表的PreparedStatement [重复]

    这个问题在这里已经有答案了 如何在执行查询时为 JDBC 中的 preparedStatement 中的 in 子句设置值 Example connection prepareStatement Select from test where
  • 我可以使用 SQL Server 2008 R2 在 VS 2015 中创建 SSRS 报告吗?

    我是 SSRS 的新手 最近将我的开发环境从 Visual Studio 2010 升级到 Visual Studio 2015 企业版 目前我的报告是使用 Crystal Reports 制作的 我想使用 SSRS 并且我正在尝试找出我当
  • Telerik 通过 SSRS 进行报告?

    广泛的问题是 Telerik Reporting 是否可以做 SSRS 2005 不能做的事情 具体信息 我们希望将当前的报告基础架构从内部 ASP NET Crystal VS 版本 迁移到其他平台 忽略成本因素 我们有 Telerik
  • SSRS。如何在table1_Details_Group右侧创建新的行组?

    我正在使用 Microsoft Visual Studio 2013 创建报告 PROBLEM 如果我添加新的Row Group前面会自动添加table1 Details Group 问题 如何更改组的顺序或在右侧添加新组table1 De
  • 像搜索一样在mysql中包含空格

    我在某些情况下使用 mysql like 关键字时遇到问题 我的要求是这样的 首先 当我搜索时 ABC 结果应该找到ABC and ABCdef但不是xyzABCdef or xyzABC 乍一看使用起来很简单ABC 但在我搜索时的情况 h
  • 当格式为 EXCEL 时,SSRS 2014 URL 访问始终生成 XLS 而不是 XLSX

    我有 SQL Server 2014 我正在尝试通过 URL 访问来访问我的报告 据我了解 Excel 格式应该为我提供一个支持无限行数的 XLSX 文件 然而 在查看日志文件后 我注意到对于任何超过 65536 行的报告 我都收到了最大行
  • VB.NET“Like”运算符中可能存在错误?

    为什么下面的评价为True Dim result b Like a b Thanks EDIT 为了概括这一点 以下返回True String1 Like AnyText1 AnyText2 AnyText String1 VBA 工作正常
  • 如何在 VBScript 中计算每月的最后一个工作日

    如何在 VBScript 中计算该月的最后一个工作日 它用于 Reporting Services 报告 Thanks 怎么样 intMonth 11 Use zero to return last day of previous mont
  • 使用 Switch 的报告服务表达式

    我无法让这个表达式与报告服务一起使用 我必须使用 IF 和 ELSE IF 语句 感谢您的任何建议 Switch IsNothing Fields field date Value Fields set flag Value 1 Decli

随机推荐