• MySQL 的 case when 的语法


    MySQL 的 case when 的语法有两种:

    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;

    2.搜索函数 

    CASE WHEN [expr] THEN [result1]…ELSE [default] END

    # 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 配合 casewhen 的简单函数实现行转列

    聚合函数 sum 配合 case when 的简单函数实现行转列
    SELECT
        st.stu_id '学号',
        st.stu_name '姓名',
        sum(
            CASE co.course_name
            WHEN '大学语文' THEN
                sc.scores
            ELSE
            END
        ) '大学语文',
        sum(
            CASE co.course_name
            WHEN '新视野英语' THEN
                sc.scores
            ELSE
            END
        ) '新视野英语',
        sum(
            CASE co.course_name
            WHEN '离散数学' THEN
                sc.scores
            ELSE
            END
        ) '离散数学',
        sum(
            CASE co.course_name
            WHEN '概率论与数理统计' THEN
                sc.scores
            ELSE
            END
        ) '概率论与数理统计',
        sum(
            CASE co.course_name
            WHEN '线性代数' THEN
                sc.scores
            ELSE
            END
        ) '线性代数',
        sum(
            CASE co.course_name
            WHEN '高等数学' THEN
                sc.scores
            ELSE
            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;

    参考链接:

    https://www.cnblogs.com/chenduzizhong/p/9590741.html

    源码,是痛苦的,又是快乐的,如果没有这痛苦,也就没有了这快乐!
  • 相关阅读:
    第六章:面向对象(下)
    第四章:流程控制和数组
    第三章:数据类型和运算符
    第二章:理解面向对象
    数据库:表设计阶段
    第一章:java语言概述与开发环境
    HTML DOM
    补漏
    不错的资源哦
    阻止事件冒泡
  • 原文地址:https://www.cnblogs.com/erlongxizhu-03/p/12334360.html
Copyright © 2020-2023  润新知