首页 > 解决方案 > 如果用户未输入值,则忽略该参数

问题描述

我正在使用 SSRS 构建报告并连接到 sql server db

假设我有下表:

ID : CITY    : DATE        : AMOUNT 
01 : London  : 2019-01-01  : 12
02 : New York: 2019-02-01  : 15
03 : London  : 2019-01-05  : 25
04 : London  : 2019-01-07  : 30

我正在使用以下查询来获取报告并将值传递给city参数

select id , city , date , amount
from table
where city = @city 

如果用户通过“纽约”,报告将如下所示

ID : CITY    : DATE        : AMOUNT 
02 : New York: 2019-02-01  : 15

我的问题是如何使参数不是强制性的,这意味着如果用户没有通过“纽约”,结果应该是

ID : CITY    : DATE        : AMOUNT 
01 : London  : 2019-01-01  : 12
02 : New York: 2019-02-01  : 15
03 : London  : 2019-01-05  : 25
04 : London  : 2019-01-07  : 30

标签: sqlsql-serverreporting-services

解决方案


如果参数为,则在查询中添加对所有记录都为 true 的另一个条件null

select id, city, date, amount
from your_table
where @city is null 
   or @city = city 

推荐阅读