SQL中的case when then else end用法

一:简单用法:

  1.第一种写法:

SELECT
    s.s_id,
    s.s_name,
    s.s_sex,
    CASE
WHEN s.s_sex = '1' THEN ''
WHEN s.s_sex = '2' THEN ''
ELSE '其他'
END as sex,
 s.s_age,
 s.class_id
FROM
    t_b_student s
WHERE
    1 = 1

  2.第二种写法
SELECT
    s.s_id,
    s.s_name,
    s.s_sex,
    CASE s.s_sex
WHEN '1' THEN ''
WHEN '2' THEN ''
ELSE '其他'
END as sex,
 s.s_age,
 s.class_id
FROM
    t_b_student s
WHERE
    1 = 1

两个运行结果一样:

 

 

二:分组

表数据:

t_b_population 

 

 sql语句:

SELECT country,
    SUM(CASE WHEN p.sex = '1' THEN p.population ELSE 0 END) AS '',
    SUM(CASE WHEN p.sex = '2' THEN p.population ELSE 0 END) AS ''
FROM
    t_b_population p
GROUP BY country;

 

 

表数据:

t_b_country 

 

 SELECT SUM(c.population) AS '人口',

CASE c.country

WHEN '中国' THEN '亚洲'

WHEN '印度' THEN '亚洲'

WHEN '日本' THEN '亚洲'

WHEN '美国' THEN '北美洲'

WHEN '加拿大' THEN '北美洲'

WHEN '墨西哥' THEN '北美洲' ELSE '其他'

END AS ''

FROM t_b_country c

GROUP BY CASE c.country

WHEN '中国' THEN '亚洲'

WHEN '印度' THEN '亚洲'

WHEN '日本' THEN '亚洲'

WHEN '美国' THEN '北美洲'

WHEN '加拿大' THEN '北美洲'

WHEN '墨西哥' THEN '北美洲'

ELSE '其他' END;

 

 

 


posted @ 2021-01-28 09:46  宸信CH  阅读(199)  评论(0)    收藏  举报