CASE WHEN 用法

Case具有兩種格式。簡(jiǎn)單Case函數(shù)和Case搜索函數(shù)。

--簡(jiǎn)單Case函數(shù)CASEsexWHEN'1'THEN'男'WHEN'2'THEN'女'ELSE'其他'END--Case搜索函數(shù)CASEWHENsex ='1'THEN'男'WHENsex ='2'THEN'女'ELSE'其他'END

這兩種方式,可以實(shí)現(xiàn)相同的功能。簡(jiǎn)單Case函數(shù)的寫法相對(duì)比較簡(jiǎn)潔,但是和Case搜索函數(shù)相比,功能方面會(huì)有些限制,比如寫判斷式。

還有一個(gè)需要注意的問題,Case函數(shù)只返回第一個(gè)符合條件的值,剩下的Case部分將會(huì)被自動(dòng)忽略。

--比如說,下面這段SQL,你永遠(yuǎn)無法得到“第二類”這個(gè)結(jié)果

CASE WHEN col_1 IN('a','b') THEN '第一類' WHEN col_1 IN('a') THEN '第二類'? ELSE '其他'END

我們也可以用這個(gè)方法來判斷工資的等級(jí),并統(tǒng)計(jì)每一等級(jí)的人數(shù)。SQL代碼如下;

SELECT

CASE WHEN salary <= 500? THEN'1'

WHEN salary > 500 AND salary <= 600 THEN '2'

WHEN salary > 600 AND salary <= 800 THEN '3'

WHEN salary > 800 AND salary<=1000 THEN '4'

ELSE NULL END salary_class,COUNT(*)

FROM Table_A GROUP BY

CASE WHEN salary <= 500 THEN'1'

WHEN salary > 500 AND salary <= 600 THEN'2'

WHEN salary > 600 AND salary <= 800 THEN'3'

WHEN salary > 800 AND salary <= 1000 THEN'4' ELSE NULL END;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容