sql-server - 如何在不更改查询的情况下忽略查询中的参数

标签 sql-server t-sql reporting-services

我有一个从 SSRS 报告数据集复制的查询,例如包含 3 个参数。在实际情况中,我有很多大约 30 个参数。我想在 SSMS 中测试此查询并使用我自己的值处理参数。但我想填充查询一个参数 - @par1,其他参数必须具有所有值。

drop table testtable;
create table testtable(param1 int,param2 int,param3 int)
insert into testtable values 
(1,10,20),(2,11,21),(3,12,22);

--added parametrs to help query work
declare @par1 int;
declare @par2 int;
declare @par3 int;
set @par1=1;
set @par2= ? --what i need to put here to have only @par1 condition implemented in query
set @par3= ? --what i need to put here to have only @par1 condition implemented in query

-- Dataset Copyed from SSRS Report. And I dont want to delete anything from here, because query is complex in real situation.
select *
from testtable
where 
param1=@par1 and param2=@par2 and param3=@par3

最佳答案

我想这对你有用

select *
from testtable
where (param1=@par1 or @par1 is null) 
  and (param2=@par2 or @par2 is null) 
  and (param3=@par3 or @par3 is null)

关于sql-server - 如何在不更改查询的情况下忽略查询中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34810235/

相关文章:

sql-server - 通过提供自己的数据集/数据表和值来生成 ssrs 报告 (.rdl)

javascript - 使用来自区域标记的 Jquery(从 SSRS 报告生成)打开新的外部 URL 作为在框架(不是 iframe)中弹出

c# - MSSQL DB - 在数据库中建立关系有什么好处?

sql - T-sql:无法理解为什么 IF 子句永远不会被调用

sql - SQL Server 中的表别名和使用 Exists

sql - 将 LIMIT 和 OFFSET 应用于 MS SQL Server 2008 查询

database - SQL 命令显示表是否设置为删除时级联

c# - EF 6.1 Code First 中与不同主键的一对一关系

c# - SqlParameter 值还是 SqlValue?

sql-server - 使用 Switch 的报告服务表达式