我有以下代码
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和其他时)
通过我的搜索,我明白这是搜索案例,但是
我需要把它变成一个简单的案例
只要第一个条件是真的,就停止评估“其他”陈述
任何帮助
答案 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;