在ANSI SQL中使用多个and和OR
我有一个简单的SQL查询:在ANSI SQL中使用多个and和OR,sql,select,Sql,Select,我有一个简单的SQL查询: SELECT w.fizz FROM widgets w WHERE w.special_id = 2394 AND w.buzz IS NOT NULL AND w.foo = 12 在伪代码中,此WHERE子句可被视为: if(specialId == 2394 && buzz != null && foo == 12) 我现在想更改这个查询,以便它返回所有widget,这些widget的
SELECT
w.fizz
FROM
widgets w
WHERE
w.special_id = 2394
AND w.buzz IS NOT NULL
AND w.foo = 12
在伪代码中,此WHERE
子句可被视为:
if(specialId == 2394 && buzz != null && foo == 12)
我现在想更改这个查询,以便它返回所有widget,这些widget的special_id为2394,buzz不为null,foo为12,或的special_id为2394,blah为“YES”,num为4。在伪代码中:
if(specialId == 2394 && (buzz != null && foo == 12) || (blah == "YES" && num == 4))
我尝试了以下操作,结果却出现了错误:
SELECT
w.fizz
FROM
widgets w
WHERE
w.special_id = 2394
AND
(
w.buzz IS NOT NULL
AND w.foo = 12
)
OR
(
w.blah = 'YES'
AND w.num = 4
)
有什么想法吗?提前谢谢
SELECT
w.fizz
FROM
widgets w
WHERE
w.special_id = 2394
AND
(
(
w.buzz != null
AND w.foo = 12
)
OR
(
w.blah = 'YES'
AND w.num = 4
)
)
在“或”周围添加其他括号,因为“或”的优先级低于“和”