SQL - case when then else end 的用法

3,357 阅读1分钟

语法结构:

格式一 :
SELECT 
        CASE WHEN SEX = '1' THEN '男' 
             WHEN SEX = '2' THEN '女'
        ELSE '性别不明' END  
        FROM  PERSON

格式二 :    
SELECT SEX
        CASE WHEN '1' THEN '男' 
             WHEN '2' THEN '女'
        ELSE '性别不明' END  
        FROM  PERSON

修改结果集列名称用法:

select            
case                   ------------- 如果
when sex='1' then '男' ------------- sex='1',则返回值'男'
when sex='2' then '女' ------------- sex='2',则返回值'女'  
else '其他'                 ------------- 其他的返回'其他’
end                    ------------- 结束
from   person          ------------- 整体理解: 在 person 表中如果sex='1',则返回值'男'如果sex='2',则返回值'女' 否则返回'其他’

行转列用法(将图一格式转换成图二格式):

SELECT 班级,
   SUM( CASE WHEN sex = '男' THEN 人数 ELSE 0 END) AS 男,
   SUM( CASE WHEN sex = '女' THEN 人数 ELSE 0 END) AS 女
 FROM TABLE
 GROUP BY 班级;