【发布时间】:2019-03-08 05:50:25
【问题描述】:
我有一个表格,其中每一行都有一个 category 和 subcategory。
我想选择除特定category 和subcategory 之外的所有行。
我的数据如下所示:
| category | subcategory |
|----------|-------------|
| Color | Orange |
| Fruit | Apple |
| Fruit | Orange |
| Fruit | Banana |
我希望我的结果如下所示:
| category | subcategory |
|----------|-------------|
| Color | Orange |
| Fruit | Banana |
这是我尝试过但显然行不通的方法:
SELECT *
FROM table
WHERE
(category <> 'Fruit' AND subcategory = 'Orange') and
(category <> 'Fruit' AND subcategory = 'Apple')
我似乎无法理解如何让它发挥作用。 SQL 是否有办法说where not (this and this),因为我仍然想要“水果”类别并且我仍然想要“橙色”子类别。
【问题讨论】:
-
我们可以保证子类别 = 'Orange' 且子类别 = 'Apple' 的行数为零。没有同时满足这两个条件的子类别的价值。我认为如果我们将“
) and (”替换为“) or (”,您所追求的结果将会返回。 -
您想按值排除特定行吗?