SQL Case When Then 条件判断
?
CASE??? WHEN 條件1 THEN 結果1
??? WHEN 條件2 THEN 結果2
??? WHEN 條件3 THEN 結果3
??? WHEN 條件4 THEN 結果4
.........
??? WHEN 條件N THEN 結果N
??? ELSE 結果X
END
Case具有兩種格式。簡單Case函數(shù)和Case搜索函數(shù)。
--簡單Case函數(shù)
CASE sex
???????? WHEN '1' THEN '男'
???????? WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函數(shù)
CASE WHEN sex = '1' THEN '男'
???????? WHEN sex = '2' THEN '女'
ELSE '其他' END
例如:
SELECT???? id, name, cj, (CASE WHEN cj < 60 THEN '不及格' WHEN cj BETWEEN 60 AND 90 THEN '良好' WHEN cj > 90 THEN '優(yōu)秀' END) AS 狀態(tài)
FROM?? stud
?
這兩種方式,可以實現(xiàn)相同的功能。簡單Case函數(shù)的寫法相對比較簡潔,但是和Case搜索函數(shù)相比,功能方面會有些限制,比如寫判斷式。
還有一個需要注意的問題,Case函數(shù)只返回第一個符合條件的值,剩下的Case部分將會被自動忽略。
--比如說,下面這段SQL,你永遠無法得到“第二類”這個結果
CASE WHEN col_1 IN ( 'a', 'b') THEN '第一類'
???????? WHEN col_1 IN ('a')?????? THEN '第二類'
ELSE'其他' END
下面我們來看一下,使用Case函數(shù)都能做些什么事情。
一,已知數(shù)據(jù)按照另外一種方式進行分組,分析。
有如下數(shù)據(jù):(為了看得更清楚,我并沒有使用國家代碼,而是直接用國家名作為Primary Key)
國家(country) 人口(population)
中國 600
美國 100
加拿大 100
英國 200
法國 300
日本 250
德國 200
墨西哥 50
印度 250
根據(jù)這個國家人口數(shù)據(jù),統(tǒng)計亞洲和北美洲的人口數(shù)量。應該得到下面這個結果。
洲 人口
?
轉載于:https://www.cnblogs.com/ajax2008/archive/2011/01/13/1934610.html
總結
以上是生活随笔為你收集整理的SQL Case When Then 条件判断的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: *.tar.bz2文件解压
- 下一篇: textarea 中获取用户的空格和回车