作者:minggute_111 | 来源:互联网 | 2020-09-30 21:58
mysqlcasewhen的用法是:1、用作简单搜索,语法为【CASE[col_name]WHEN[value1]】;2、用作搜索函数,语法为【ASEWHEN[expr]THEN[result1]】。
mysql case when的用法是:1、用作简单搜索,语法为【CASE [col_name] WHEN [value1]】;2、用作搜索函数,语法为【ASE WHEN [expr] THEN [result1]】。
SELECT
NAME '英雄',
CASE NAME
WHEN '德莱文' THEN
'斧子'
WHEN '德玛西亚-盖伦' THEN
'大宝剑'
WHEN '暗夜猎手-VN' THEN
'弩'
ELSE
'无'
END '装备'
FROM
user_info;
SELECT
NAME '英雄',
CASE NAME
WHEN '德莱文' THEN
'斧子'
WHEN '德玛西亚-盖伦' THEN
'大宝剑'
WHEN '暗夜猎手-VN' THEN
'弩'
ELSE
'无'
END '装备'
FROM
user_info;
2、搜索函数
CASE WHEN [expr] THEN [result1]…ELSE [default] END
搜索函数可以写判断,并且搜索函数只会返回第一个符合条件的值,其他case被忽略
# when 表达式中可以使用 and 连接条件
SELECT
NAME '英雄',
age '年龄',
CASE
WHEN age <18 THEN
&#39;少年&#39;
WHEN age <30 THEN
&#39;青年&#39;
WHEN age >= 30
AND age <50 THEN
&#39;中年&#39;
ELSE
&#39;老年&#39;
END &#39;状态&#39;
FROM
user_info;
聚合函数 sum 配合 case when 的简单函数实现行转列
SELECT
st.stu_id &#39;学号&#39;,
st.stu_name &#39;姓名&#39;,
sum(
CASE co.course_name
WHEN &#39;大学语文&#39; THEN
sc.scores
ELSE
0
END
) &#39;大学语文&#39;,
sum(
CASE co.course_name
WHEN &#39;新视野英语&#39; THEN
sc.scores
ELSE
0
END
) &#39;新视野英语&#39;,
sum(
CASE co.course_name
WHEN &#39;离散数学&#39; THEN
sc.scores
ELSE
0
END
) &#39;离散数学&#39;,
sum(
CASE co.course_name
WHEN &#39;概率论与数理统计&#39; THEN
sc.scores
ELSE
0
END
) &#39;概率论与数理统计&#39;,
sum(
CASE co.course_name
WHEN &#39;线性代数&#39; THEN
sc.scores
ELSE
0
END
) &#39;线性代数&#39;,
sum(
CASE co.course_name
WHEN &#39;高等数学&#39; THEN
sc.scores
ELSE
0
END
) &#39;高等数学&#39;
FROM
edu_student st
LEFT JOIN edu_score sc ON st.stu_id = sc.stu_id
LEFT JOIN edu_courses co ON co.course_no = sc.course_no
GROUP BY
st.stu_id
ORDER BY
NULL;
想了解更多编程学习,敬请关注php培训栏目!
以上就是mysql case when的用法是什么的详细内容,更多请关注 第一PHP社区 其它相关文章!