MySql 中 case when then else end 的用法
解釋:
SELECT?????????? ?
??? case?????????????????? -------------如果
??? when sex='1' then '男' -------------sex='1',則返回值'男'
??? when sex='2' then '女' -------------sex='2',則返回值'女' ?
??? else 0???????????????? -------------其他的返回'其他’
??? end??????????????????? -------------結(jié)束
from?? sys_user??????????? --------整體理解: 在sys_user表中如果sex='1',則返回值'男'如果sex='2',則返回值'女' 否則返回'其他’
---用法一:
SELECT?
??????????? CASE WHEN STATE = '1' THEN '成功'?
???????????????? WHEN STATE = '2' THEN '失敗'
??????????? ELSE '其他' END ?
??????????? FROM? SYS_SCHEDULER
---用法二:?? ?
SELECT STATE
??????????? CASE WHEN '1' THEN '成功'?
???????????????? WHEN '2' THEN '失敗'
??????????? ELSE '其他' END ?
??????????? FROM? SYS_SCHEDULER
?
?
列子:
有員工表empinfo?
(?
Fempno varchar2(10) not null pk,?
Fempname varchar2(20) not null,?
Fage number not null,?
Fsalary number not null?
);?
假如數(shù)據(jù)量很大約1000萬條;寫一個你認(rèn)為最高效的SQL,用一個SQL計算以下四種人:?
fsalary>9999 and fage > 35?
fsalary>9999 and fage < 35?
fsalary <9999 and fage > 35?
fsalary <9999 and fage < 35?
每種員工的數(shù)量;?
select sum(case when fsalary > 9999 and fage > 35
then 1
else 0end) as "fsalary>9999_fage>35",
sum(case when fsalary > 9999 and fage < 35
then 1
else 0
end) as "fsalary>9999_fage<35",
sum(case when fsalary < 9999 and fage > 35
then 1
else 0
end) as "fsalary<9999_fage>35",
sum(case when fsalary < 9999 and fage < 35
then 1
else 0
end) as "fsalary<9999_fage<35"
from empinfo;
?
總結(jié)
以上是生活随笔為你收集整理的MySql 中 case when then else end 的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring事务回滚和异常类
- 下一篇: jsp Request获取url信息的各