mysql case when的用法是:1、用作简单搜索,语法为【case [col_name] when [value1]】;2、用作搜索函数,语法为【case when [expr] then [result1]】。
【相关学习推荐:mysql教程(视频)】
mysql case when的用法是:
case when 的语法有两种
简单函数
case [col_name] when [value1] then [result1]…else [default] end
搜索函数
case when [expr] then [result1]…else [default] end
这两种语法有什么区别呢?
1、简单函数
case [col_name] when [value1] then [result1]…else [default] end
枚举这个字段所有可能的值*
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 '少年' when age < 30 then '青年' when age >= 30 and age < 50 then '中年' else '老年' end '状态'from user_info;
聚合函数 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 stleft join edu_score sc on st.stu_id = sc.stu_idleft join edu_courses co on co.course_no = sc.course_nogroup by st.stu_idorder by null;
想了解更多编程学习,敬请关注php培训栏目!
以上就是mysql case when的用法是什么的详细内容。