sql - 如果用户未输入值,则忽略该参数
问题描述
我正在使用 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
解决方案
如果参数为,则在查询中添加对所有记录都为 true 的另一个条件null
:
select id, city, date, amount
from your_table
where @city is null
or @city = city
推荐阅读
- python - 如何在保持相同值分布的同时将数组拉伸到新长度?
- zsh - 带有 iTerm2 的 zsh shell 左侧的三角形符号
- postgresql - pandas to_sql 中“意外关键字参数 'fetch'”错误的来源?
- sql - 运行时错误“13”类型不匹配 - 访问数据库
- java - 查找点是在一条线的左边还是右边(使用坐标!!)
- java - Pdfbox 为什么我不能加载文档?
- arduino - 函数定义 1 错误,我尝试在我的 arduino ide 中自动格式化并按 ctrl+t,但问题仍然存在
- apache-spark - Spark基于逻辑拆分数据帧
- load-testing - 在使用 K6 时测量 x 个请求的持续时间
- javascript - 使用 json 从 mysql 获取数据并使用 D3 绘图