sql server case when 用法

CASE WHEN的兩種格式

1.簡單Case函數

CASE sex

         WHEN '1' THEN '男'

         WHEN '2' THEN '女'

ELSE '其他' END

2.Case搜索函數

CASE WHEN sex = '1' THEN '男'

         WHEN sex = '2' THEN '女'

ELSE '其他' END

1).兩者相比,Case搜索函數功能更強。

2).Case函數類似於if……else if 語句,只返回第一個符合條件的值,之後的部分會被忽略

 

例子:(按照指定規則分組,並計算每組人數)

create table #temp
(
    country varchar(100),
    people int

)

insert into #temp
select 'A',400 union all
select 'B',2890 union all
select 'C',3490 union all
select 'D',5678 union all
select 'E',457 union all
select 'F',2345


select
CASE WHEN country='A' or country='B' THEN '1組' 
          WHEN country='C' or country='D' THEN '2組'
          WHEN country='E' or country='F'  THEN '3組'
          END 組別,SUM(people) 人數合計
from #temp
group by
CASE WHEN country='A' or country='B' THEN '1組' 
          WHEN country='C' or country='D' THEN '2組'
          WHEN country='E' or country='F'  THEN '3組'
          END

 

ps.

Order by 後也可使用Case when 用於篩選需要的排序數據

Example:

order by case when ISNULL(A.ReqDate,'')!='' then A.ReqDate else A.PlanReqDate end desc

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章