千家信息网

mysql中case when的作用是什么

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,mysql中case when的作用是什么?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!mysql case whe
千家信息网最后更新 2025年01月20日mysql中case when的作用是什么

mysql中case when的作用是什么?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

mysql case when的用法是:1、用作简单搜索,语法为【CASE [col_name] WHEN [value1]】;2、用作搜索,语法为【ASE WHEN [expr] THEN [result1]】。

【相关学习推荐:mysql教程(视频)】

mysql case when的用法是:

MySQL 的 case when 的语法有两种:

简单函数

CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END

搜索函数

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

这两种语法有什么区别呢?

简单函数

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;

搜索函数

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;

感谢各位的阅读!看完上述内容,你们对mysql中case when的作用是什么大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注行业资讯频道。

0