首页 > 解决方案 > 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

有什么建议么?

标签: sqlwhere-clausemultiple-conditions

解决方案


这应该有效:

WHERE 
Year = '2016' 
OR (Year = '2017'  AND CustID NOT In ('AB17','AB18'))

推荐阅读