我正在尝试编写一个执行以下操作的查询。
返回当前FQ中所有值为0的值,并返回上一个FQ中所有不为0的值
我想知道是否可以对WHERE子句进行分组。
基本上,我想在一个WHERE子句中这样做:
WHERE date = 3/31/2019 AND value != 0
OR
WHERE date = 6/30/2019 AND value = 0
我希望它将3/31/2019 AND值!= 0作为一个子句进行评估,然后使用OR使其对另一个子句进行评估。
在单个查询中有可能吗?
谢谢
克里斯
答案 0 :(得分:2)
一个SQL查询只有一个where
子句。这可以包含AND
和OR
的任意组合。您的条款可以写成:
WHERE date = '2019-03-31' AND value <> 0 OR
date = '2019-06-30' AND value = 0
之所以可行,是因为AND
的绑定比OR
的绑定更紧密(即,其优先级更高)。但是,通常会在此使用括号:
WHERE (date = '2019-03-31' AND value <> 0) OR
(date = '2019-06-30' AND value = 0)
请注意使用ISO标准日期格式。这是大多数数据库中的首选格式。