在where子句SQL中使用case / if

时间:2014-02-03 19:02:28

标签: mysql sql case

所以我有一个按日期在两个不同类别中组织的项目列表,当切换类别时,我有时会遇到一个错误,不会让项目进入正确的位置。弄乱查询的是我想要放在case / if语句中的事情,因为只有当一个项目具有相同的日期时才需要它,任何时候它都会抛出整个查询。这就是我所拥有的,因为我知道那个案例不适用于它或它是如何工作的,请与我合作。

SELECT CASE WHEN COUNT(*)=0 THEN (SELECT MAX(Rotate)+1 FROM Table1 WHERE Vol=1)
ELSE MIN(o.Rotate) END as nRotate FROM Table1 o INNER JOIN Table2 s ON o.SID=s.ID 
WHERE s.Date >='7/30/2004' And s.ID<>100 And o.Vol=1 and 
Case s.DATE 
When '7/30/2004' then s.Sales>'Doe, Jane'
End

1 个答案:

答案 0 :(得分:2)

您不需要case

WHERE s.Date >='2004-07-30' And s.ID <> 100 And o.Vol = 1 and 
      (s.date <> '2004-07-30' or s.Sales > 'Doe, Jane')