Mysql 在where子句SQL中使用case/if
所以我有一个按日期分为两个不同类别的项目列表,在切换类别时,我有时会遇到一个错误,无法让项目进入正确的位置。打乱查询的是我想放在case/if语句中的内容,因为只有当有一个项目具有相同的日期时才需要它,其他任何时候它都会抛出整个查询。这是我所拥有的,假设我知道这个案例在哪里或如何都不起作用,请与我合作Mysql 在where子句SQL中使用case/if,mysql,sql,case,Mysql,Sql,Case,所以我有一个按日期分为两个不同类别的项目列表,在切换类别时,我有时会遇到一个错误,无法让项目进入正确的位置。打乱查询的是我想放在case/if语句中的内容,因为只有当有一个项目具有相同的日期时才需要它,其他任何时候它都会抛出整个查询。这是我所拥有的,假设我知道这个案例在哪里或如何都不起作用,请与我合作 SELECT CASE WHEN COUNT(*)=0 THEN (SELECT MAX(Rotate)+1 FROM Table1 WHERE Vol=1) ELSE MIN(o.Rotate)
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
您不需要案例:
谢谢,这对我的一个问题有效。我将在多个位置进行测试,以确保在每个位置都得到我应该得到的答案。我试过之后再给答案打分。我现在对SQL不太熟悉,已经有一段时间了。再次感谢你,它在所有方面都工作得很好。不过我真的应该想到这一点。。。。我太专注于案例条款了,除此之外,我想不出其他任何事情了!从现在起,我会记住这一点。我确实做了这方面的研究,实际上花了大约两个小时,并没有在其他人的问题中找到我想要的。如果我有,我就不会问了。我的问题是,我一直在努力研究案例条款,想除此之外的任何事情。谢谢你的评分。
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')