将搜索案例转换为其他简单案例
Convert searched case to simple case else
我有以下代码
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 和其他时)
通过我的搜索,我了解到这是搜索案例,但是
我需要让它成为一个简单的案例
只要第一个条件为真,就停止评估 "else" 语句
任何帮助
您需要指定将哪一列与 CASE 的结果进行比较,例如:
SELECT *
FROM weeks
WHERE wenumber = (CASE
WHEN wet > 1000 THEN 1
ELSE 22
END)
更好的方法
select *
from weeks
where ( wet>1000 and wenumber = 1 ) or wenumber = 22
试试这个:
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;
我有以下代码
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 和其他时)
通过我的搜索,我了解到这是搜索案例,但是
我需要让它成为一个简单的案例
只要第一个条件为真,就停止评估 "else" 语句
任何帮助
您需要指定将哪一列与 CASE 的结果进行比较,例如:
SELECT *
FROM weeks
WHERE wenumber = (CASE
WHEN wet > 1000 THEN 1
ELSE 22
END)
更好的方法
select *
from weeks
where ( wet>1000 and wenumber = 1 ) or wenumber = 22
试试这个:
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;