我的数据集中有以下几列:
.1. Goal
.2. Quarter
.3. Year
我有4个季度:1,2,3,4
我有4年:2015、2016、2017、2018
我要选择除2019-QTR3和2019-QTR4以外的所有目标
我使用了Where语句,例如:
SELECT * from Table
WHERE
(`Year` <> "2019" and `Quarter Name` <> "QTR3")
OR (`Year` <> "2019" and `Quarter Name` <> "QTR4")
但是结果是,没有选择所有以年为2019年或以QTR3或QTR4为季度的行,这不是我想要的
SELECT
* FROM Table
WHERE
(`Year` <> "2019" and `Quarter Name` <> "QTR3")
OR (`Year` <> "2019" and `Quarter Name` <> "QTR4")
我的查询结果根本不包括2019年。它们也根本不包括QTR3和ATR4(与年份无关)。我不要那个
答案 0 :(得分:0)
您的要求是:
True
或使用IN运算符:
SELECT * from Table
WHERE
NOT (`Year` = "2019" AND `Quarter Name` = "QTR3")
AND
NOT (`Year` = "2019" AND `Quarter Name` = "QTR4")
等效于:
SELECT * from Table
WHERE NOT (`Year` = "2019" AND `Quarter Name` IN ("QTR3", "QTR4"))
或:
SELECT * from Table
WHERE
(`Year` <> "2019" OR `Quarter Name` <> "QTR3")
AND
(`Year` <> "2019" OR `Quarter Name` <> "QTR4")
答案 1 :(得分:0)
我要选择除2019-QTR3和2019-QTR4以外的所有目标
您可以将NOT IN
与元组一起使用:
SELECT * from `Table`
WHERE (`Year`, `Quarter Name`) NOT IN ( ('2019', 'QTR3'), ('2019', 'QTR3'))
答案 2 :(得分:-1)
如果您这样做
SELECT * from Table WHERE Year <> "2019" or (Quarter Name <> "QTR3" AND Quarter Name <> "QTR4")
应该为您解决。 编辑