zoukankan      html  css  js  c++  java
  • MYSQL case when 的用法

    前言:遇到这样一个需求,有一门成绩,成绩中只记录了学生的分数,现在需要统计学生的分数等级,100-90分为优秀,90-60分为及格,60-0分为不及格。这个需求就可以用CASE语句来表达。

    case语句分为简单case语句和可搜索case语句。

    1.简单case的语法为

    CASE  case_expression
       WHEN when_expression_1 THEN commands
       WHEN when_expression_2 THEN commands
       ...
       ELSE commands
    END

    这种适合固定的值,比如性别,1男,2女这种

    例子:将下图中sex换成汉字的性别,1男,2女。

    SELECT
        *, (
            CASE sex
            WHEN 1 THEN
                ''
            WHEN 2 THEN
                ''
            END
        ) '性别'
    FROM
        `user`

    结果如下图

    2.可搜索case语句,这种适应表达式与一组不同的值进行匹配。

    语法为

    CASE
        WHEN condition_1 THEN commands
        WHEN condition_2 THEN commands
        ...
        ELSE commands
    END

    例子就是最开始提到的

    SELECT
        *,
        (
            CASE
            WHEN  score>=90 THEN
                '优秀'
            WHEN score>=60 THEN
                '及格'
            ELSE
                '不及格'
            END
        ) '等级'
    FROM
        math
    ORDER BY score DESC

    结果如下

     还有是根据不同的值去更新数据

     需求是根据RelationResourceCode 前四位的值 更新RelationResourceType  的值

    BZWX--》standard
    JGGF--》specification
    DXAL--》case
    ZCFG--》policy
    ZSCT--》knowledgeitem

    语句如下:
    update   ResourceRelations  set RelationResourceType =
    
    (
            CASE left(RelationResourceCode,4)
            WHEN  'BZWX' THEN
                'standard'
            WHEN  'JGGF' THEN
                'specification'
                    WHEN  'DXAL' THEN
                'case'
                            
                    WHEN  'ZCFG' THEN
                'policy'
                            
                    WHEN  'ZSCT' THEN
                'knowledgeitem'
            END
        ) 

    结果如下

  • 相关阅读:
    mysql5大引擎之间的区别和优劣之分
    关于集合
    泛型
    集合2
    easyui 入门讲解
    <input>和<textarea>
    php中echo(),print(),print_r(),var_dump()间的区别
    PHP图形操作之生成图像验证码
    JZ046圆圈中最后剩下的数
    Python3连接MySQL
  • 原文地址:https://www.cnblogs.com/ningy1009/p/13672949.html
Copyright © 2011-2022 走看看