sql - SQL中where子句中的if语句
问题描述
我有以下数据集
DNo Quantity Sites ID Desc
----------------------------------------------------------------------------
18050075 9 2 ADD6 Number of client reporting sites
18050075 9 2 ADD7 Annual Maintenance
18050075 9 2 ADD8 Ongoing Fees
18050075 1 2 ADD9 Employee Meeting (per day plus incurred expenses)
18050075 0 2 ADD10 Custom Data file Layouts
18050075 0 2 ADD11 Error Correction for more than 2% errors in a single
在存储过程中的 select 语句中,如果数量大于 0,我只想返回 ADD9、ADD10、ADD11。有人可以告诉我如何在 where 子句中编写 if 语句,以便我只能将条件应用于特定身份证
所以我的结果集应该如下所示
18050075 9 2 ADD6 Number of client reporting sites
18050075 9 2 ADD7 Annual Maintenance
18050075 9 2 ADD8 Ongoing Fees
18050075 1 2 ADD9 Employee Meeting (per day plus incurred expenses)
谢谢
解决方案
下面的呢?它依赖于将您的数据拆分为两个单独的查询,然后追加。
select * -- this gets all data other than these ids
from your_data_table
where ID not in ('ADD9', 'ADD10', 'ADD11')
union all -- this joins everything toghether
select * -- this gets all requested data for these ids
from your_data_table
where ID in ('ADD9', 'ADD10', 'ADD11') and Quantity > 0
推荐阅读
- php - PHP 警告:ftp_put():无法建立数据连接:不允许操作 - 一段时间后
- javascript - Firebase 跟踪以前插入的记录
- laravel - 如何解密我用 Bcrypt 散列的密码(用于显示目的)?
- c# - 从数据库检索所有结果数据到列表视图
- hadoop - 在 Hue 中完成后,Impala 查询挂起
- xml - 如何每次仅从具有可变字符长度的子字符串中获取最后 4 个字符
- r - 如何根据列合并和绘制 2 个数据的值
- r - 更改标题颜色 Rmd 文件
- php - Laravel Eloquent 选择查询返回空数组的位置
- c# - PrincipalContext.ValidateCredentials 对某些用户失败?