SQL中的case when then else end用法
程序员文章站
2022-09-14 10:22:37
一:简单用法:1.第一种写法:SELECT s.s_id, s.s_name, s.s_sex, CASEWHEN s.s_sex = '1' THEN '男'WHEN s.s_sex = '2' THEN '女'ELSE '其他'END as sex, s.s_age, s.class_idFROM t_b_student sWHERE 1 = 12.第二种写法SELECT s.s_id, s.s_name,...
一:简单用法:
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
两个运行结果一样:
有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略
二:分组
表数据:
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
sql语句:
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;
运行结果:
本文地址:https://blog.csdn.net/weixin_45327010/article/details/107156518
上一篇: 小记
下一篇: 课时22.br标签(掌握)
推荐阅读
-
SQL之case when then else end用法介绍
-
MS SQL的CASE...WHEN...THEN...END语法
-
SQL中的case when then else end用法
-
sql学习之CASE WHEN THEN ELSE END的用法
-
sql语句case when then else end 返回一个符合条件的值
-
Oracle SQL nvl(),listagg() within group(),TO_CHAR(),CASE WHEN THEN ELSE END
-
sql查询各科成绩最高分、最低分和平均分(case when then else end)
-
分享SQL语句update中case/when的写法
-
SQL之case when then else end用法介绍
-
关于SQL case when的用法介绍