這篇文章在借鑒前人的基礎上,進行了驗證,感謝前人的分享
一、case when的使用方法
Case具有兩種格式。簡單Case函數和Case搜索函數。
第一種 格式 : 簡單Case函數 :
格式說明
case 列名
when 條件值1 then 選項1
when 條件值2 then 選項2.......
else 默認值 end
eg:
select
case job_level
when '1' then '1111'
when '2' then '1111'
when '3' then '1111'
else 'eee' end
from dbo.employee
第二種 格式 :Case搜索函數
格式說明
case
when 列名= 條件值1 then 選項1
when 列名=條件值2 then 選項2.......
else 默認值 end
eg:
update employee
set e_wage =
case
when job_level = '1' then e_wage*1.97
when job_level = '2' then e_wage*1.07
when job_level = '3' then e_wage*1.06
else e_wage*1.05
end
提示:通常我們在寫Case When的語句的時候,會容易忘記 end 這個結束,一定要記得喲!
比較: 兩種格式,可以實現相同的功能。
簡單Case函數的寫法相對比較簡潔,但是和Case搜索函數相比,功能方面會有些限制,比如寫判斷式。還有一個需要注意的問題,Case函數只返回第一個符合條件的 值,剩下的Case部分將會被自動忽略。
二、case when使用案例
下面我們來看一下,使用
Case
函數都能做些什么事情。
1、已知數據按照另外一種方式進行分組,分析
- 有如下數據:(為了看得更清楚,直接使用國家代碼作為Primary Key)



根據這個國家人口數據,統計各個大洲的人口數量





- 用這個方法來判斷工資的等級,並統計每一等級的人數










然后計算每一個等級的數量



方法2:



2、豎表轉橫表









3、根據條件有選擇的update









