这应该是一个简单的问题,但出于某种原因,我无法让它发挥作用。我有一张如下表:
|Name|Attribute|
----------------
|Foo | 1 |
|Foo | 2 |
|Foo | 3 |
|Bar | 1 |
|Bar | 2 |
|Bar | 3 |
|Yum | 1 |
|Yum | 2 |
|Yum | 3 |
我想过滤它,如下所示
|Name|Attribute|
----------------
|Foo | 2 |
|Foo | 3 |
|Bar | 1 |
|Bar | 2 |
|Bar | 3 |
请注意,我已删除所有"百胜"并删除了一个" Foo"仅当Attribute = 1
时问题是当我做这样的事情时
SELECT *
FROM table
WHERE name in ('Foo', 'Bar')
AND (name != 'Foo' AND attribute != 1)
我得到了这个结果
|Name|Attribute|
----------------
|Bar | 2 |
|Bar | 3 |
我会认为括号将事物组合在一起?
答案 0 :(得分:1)
我认为就or
而言:
where (name = 'Bar') or (name = 'Foo' and attribute <> 1)
答案 1 :(得分:0)
Select
*
From
table
Where
(Name <> 'Yum') and
not (Name = 'Foo' and attribute = 1)