zoukankan      html  css  js  c++  java
  • 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

    源码,是痛苦的,又是快乐的,如果没有这痛苦,也就没有了这快乐!
  • 相关阅读:
    第47课 父子间的冲突
    第46课 继承中的构造与析构
    第45课 不同的继承方式
    3.天线-网络规划-网络优化
    2.多址技术
    断剑重铸013
    断剑重铸012
    断剑重铸011
    1.LTE系统概述
    断剑重铸010
  • 原文地址:https://www.cnblogs.com/erlongxizhu-03/p/12334360.html
Copyright © 2011-2022 走看看