如果用户未输入值,则忽略参数

时间:2019-12-09 13:02:18

标签: sql sql-server reporting-services

我正在使用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

1 个答案:

答案 0 :(得分:1)

如果参数为null,则在查询中放入对所有记录均成立的另一个条件:

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