分组WHERE子句

时间:2019-07-18 23:49:40

标签: sql where-clause

我正在尝试编写一个执行以下操作的查询。

返回当前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使其对另一个子句进行评估。

在单个查询中有可能吗?

谢谢

克里斯

1 个答案:

答案 0 :(得分:2)

一个SQL查询只有一个where子句。这可以包含ANDOR的任意组合。您的条款可以写成:

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标准日期格式。这是大多数数据库中的首选格式。