本文摘自PHP中文网,作者coldplay.xixi,侵删。
mysql case when的用法是:1、用作简单搜索,语法为【CASE [col_name] WHEN [value1]】;2、用作搜索函数,语法为【CASE WHEN [expr] THEN [result1]】。

【相关学习推荐:mysql教程(视频)】
mysql case when的用法是:
case when 的语法有两种
简单函数
1 | CASE [col_name] WHEN [value1] THEN [result1]…ELSE [ default ] END
|
搜索函数
1 | CASE WHEN [expr] THEN [result1]…ELSE [ default ] END
|
这两种语法有什么区别呢?
1、简单函数
1 | CASE [col_name] WHEN [value1] THEN [result1]…ELSE [ default ] END
|
枚举这个字段所有可能的值*
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 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、搜索函数
1 | CASE WHEN [expr] THEN [result1]…ELSE [ default ] END
|
搜索函数可以写判断,并且搜索函数只会返回第一个符合条件的值,其他case被忽略
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # when 表达式中可以使用 and 连接条件
SELECT
NAME '英雄' ,
age '年龄' ,
CASE
WHEN age < 18 THEN
'少年'
WHEN age < 30 THEN
'青年'
WHEN age >= 30
AND age < 50 THEN
'中年'
ELSE
'老年'
END '状态'
FROM
user_info;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | 聚合函数 sum 配合 case when 的简单函数实现行转列
SELECT
st.stu_id '学号' ,
st.stu_name '姓名' ,
sum(
CASE co.course_name
WHEN '大学语文' THEN
sc.scores
ELSE
0
END
) '大学语文' ,
sum(
CASE co.course_name
WHEN '新视野英语' THEN
sc.scores
ELSE
0
END
) '新视野英语' ,
sum(
CASE co.course_name
WHEN '离散数学' THEN
sc.scores
ELSE
0
END
) '离散数学' ,
sum(
CASE co.course_name
WHEN '概率论与数理统计' THEN
sc.scores
ELSE
0
END
) '概率论与数理统计' ,
sum(
CASE co.course_name
WHEN '线性代数' THEN
sc.scores
ELSE
0
END
) '线性代数' ,
sum(
CASE co.course_name
WHEN '高等数学' THEN
sc.scores
ELSE
0
END
) '高等数学'
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的用法是什么的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
mysqldump数据库备份参数详解
mysql innodb索引原理的详细介绍(代码示例)
全网最全的一篇数据库mvcc详解,不全我负责
mysql系列之十三 mysql的复制
mysql单表数据不要超过500万行:是经验数值,还是黄金铁律?
mysql如何查询所有表和字段信息
mysql怎么查询最近7天的数据
查看mysql版本的命令是什么
mysql必备的常见知识点汇总整理
mysql 实现设置多个主键的操作
更多相关阅读请进入《mysql》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » mysql case when的用法是什么