sql - WHERE 子句 SQL 中的多个子条件
问题描述
我有一个表的以下示例,我希望从中的所有行年份为“2016”和“2017”,但希望从“2017”年排除 CustID“AB17”和“AB18”。总共我应该得到 12 行。看到这个小提琴
例子:
SQL:
SELECT * FROM testing
WHERE Year In ('2016','2017')
AND (CustID NOT In ('AB17','AB18') AND Year = '2017');
桌子:
Year CustID Revenue
2016 AB12 10
2016 AB13 11
2016 AB14 12
2016 AB15 13
2016 AB16 14
2016 AB17 15
2016 AB18 16
2017 AB12 10
2017 AB13 11
2017 AB14 12
2017 AB15 13
2017 AB16 14
2017 AB17 15
2017 AB18 16
2018 AB12 17
2018 AB13 18
2018 AB14 19
2018 AB15 20
2018 AB16 21
2018 AB17 22
2018 AB18 23
有什么建议么?
解决方案
这应该有效:
WHERE
Year = '2016'
OR (Year = '2017' AND CustID NOT In ('AB17','AB18'))
推荐阅读
- r - 通过 rvest 提取内容的 R web 抓取问题
- php - 如何在使用 Laravel 7 的视图中根据文件类型显示图标?
- vue.js - 如何将目录中的所有“vue”文件包含到构建中而不显式导入它们
- docker - vuejs dev 为 docker 构建动态输出(每次更改后更新文件)
- javascript - 仅当用户单击取消时如何触发 CancellationToken
- javascript - 我应该如何创建这个
- php - 如何从自定义异常消息中删除默认的 Laravel 异常消息
- django - 带有 WSGI ModuleNotFoundError 的 Apache 日志
- javascript - 无法使用 php、js、ajax 从联系表单接收信息?
- java - 如何防止 url 在 web 视图中显示