将搜索到的案例转换为简单的案例

时间:2015-08-29 10:10:29

标签: mysql sql select case

我有以下代码

select * from weeks 
where case
when wet>1000 then wenumber=1
when wet>500 then wenumber=2
when wet>100 then wenumber=3
else wenumber= 22
end

它给了我两者的结果(当> 1000和其他时)
通过我的搜索,我明白这是搜索案例,但是 我需要把它变成一个简单的案例 只要第一个条件是真的,就停止评估“其他”陈述 任何帮助

3 个答案:

答案 0 :(得分:1)

更好的方式

select *
from weeks 
where  ( wet>1000 and wenumber = 1 ) or wenumber = 22

答案 1 :(得分:0)

您需要指定哪个列应与CASE的结果进行比较,如:

SELECT *
FROM weeks 
WHERE wenumber = (CASE
                     WHEN wet > 1000 THEN 1
                     ELSE 22
                 END)

答案 2 :(得分:0)

试试这个:

SELECT * 
FROM weeks 
WHERE wenumber = CASE WHEN wet > 1000 THEN 1
                      WHEN wet BETWEEN 500 AND 1000 THEN 2
                      WHEN wet BETWEEN 100 AND 500 THEN 3
                      ELSE 22
                 END;