• 技术文章 >数据库 >mysql教程

    mysql case when的用法是什么

    coldplay.xixicoldplay.xixi2020-10-12 13:58:56原创1374

    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 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中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:mysql case when
    上一篇:mysql字符串如何转date日期 下一篇:MySQL如何计算相邻两行某列差值
    大前端线上培训班

    相关文章推荐

    • MySQL 的CASE WHEN 语句使用说明• case when用法• oracle case when的用法• sql语句case when用法详解

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网