mysql case when的用法是什么
【相关学习推荐: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枚举这个字段所有可能的值*SELECTNAME '英雄',CASE NAMEWHEN '德莱文' THEN'斧子'WHEN '德玛西亚-盖伦' THEN'大宝剑'WHEN '暗夜猎手-VN' THEN'弩'ELSE'无'END '装备'FROMuser_info;复制代码复制代码SELECTNAME '英雄',CASE NAMEWHEN '德莱文' THEN'斧子'WHEN '德玛西亚-盖伦' THEN'大宝剑'WHEN '暗夜猎手-VN' THEN'弩'ELSE'无'END '装备'FROMuser_info;2、搜索函数CASE WHEN [expr] THEN [result1]…ELSE [default] END搜索函数可以写判断,并且搜索函数只会返回第一个符合条件的值,其他case被忽略# when 表达式中可以使用 and 连接条件SELECTNAME '英雄',age '年龄',CASEWHEN age < 18 THEN'少年'WHEN age < 30 THEN'青年'WHEN age >= 30AND age < 50 THEN'中年'ELSE'老年'END '状态'FROMuser_info;聚合函数 sum 配合 case when 的简单函数实现行转列SELECTst.stu_id '学号',st.stu_name '姓名',sum(CASE co.course_nameWHEN '大学语文' THENsc.scoresELSE0END) '大学语文',sum(CASE co.course_nameWHEN '新视野英语' THENsc.scoresELSE0END) '新视野英语',sum(CASE co.course_nameWHEN '离散数学' THENsc.scoresELSE0END) '离散数学',sum(CASE co.course_nameWHEN '概率论与数理统计' THENsc.scoresELSE0END) '概率论与数理统计',sum(CASE co.course_nameWHEN '线性代数' THENsc.scoresELSE0END) '线性代数',sum(CASE co.course_nameWHEN '高等数学' THENsc.scoresELSE0END) '高等数学'FROMedu_student stLEFT JOIN edu_score sc ON st.stu_id = sc.stu_idLEFT JOIN edu_courses co ON co.course_no = sc.course_noGROUP BYst.stu_idORDER BYNULL;以上就是mysql case when的用法是什么的详细内容,更多请关注小潘博客其它相关文章!