本文摘自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的用法是什么的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
如何理解mysql数据库的优化
mariadb(mysql)创建、删除、选择及数据类型使用详解
mysql关于统计数量的sql查询操作
mysql中索引可以删除吗?
mysql中exists、in及any的基本用法
怎么删mysql的注册表?
mysql中关于连接(join)查询详解
mysql中的四大运算符种类实例汇总(20多项)
mysql 配置参数详解
drivermanager连接mysql数据库在实际开发中使用
更多相关阅读请进入《mysql》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » mysql case when的用法是什么