zoukankan      html  css  js  c++  java
  • SQL之CASE WHEN用法详解[1]

    简单CASE WHEN函数:

    CASE SCORE WHEN 'A' THEN '' ELSE '不及格' END
    CASE SCORE WHEN 'B' THEN '' ELSE '不及格' END
    CASE SCORE WHEN 'C' THEN '' ELSE '不及格' END

     等同于,使用CASE WHEN条件表达式函数实现:

    CASE WHEN SCORE = 'A' THEN ''
         WHEN SCORE = 'B' THEN ''
         WHEN SCORE = 'C' THEN '' ELSE '不及格' END

     THEN后边的值与ELSE后边的值类型应一致,否则会报错。如下:

    CASE SCORE WHEN 'A' THEN '' ELSE 0 END

    '优'和0数据类型不一致则报错: 

    [Err] ORA-00932: 数据类型不一致: 应为 CHAR, 但却获得 NUMBER

    简单CASE WHEN函数只能应对一些简单的业务场景,而CASE WHEN条件表达式的写法则更加灵活。

    CASE WHEN条件表达式函数:类似JAVA中的IF ELSE语句。

    CASE WHEN condition THEN result
     
    [WHEN...THEN...]
     
    ELSE result
     
    END

    condition是一个返回布尔类型的表达式,如果表达式返回true,则整个函数返回相应result的值,如果表达式皆为false,则返回ElSE后result的值,如果省略了ELSE子句,则返回NULL。

    下面介绍几种常用场景。

    场景1:有分数score,score<60返回不及格,score>=60返回及格,score>=80返回优秀

    SELECT
        STUDENT_NAME,
        (CASE WHEN score < 60 THEN '不及格'
            WHEN score >= 60 AND score < 80 THEN '及格'
            WHEN score >= 80 THEN '优秀'
            ELSE '异常' END) AS REMARK
    FROM
        TABLE

     注意:如果你想判断score是否null的情况,WHEN score = null THEN '缺席考试',这是一种错误的写法,正确的写法应为:

    CASE WHEN score IS NULL THEN '缺席考试' ELSE '正常' END
  • 相关阅读:
    python字典
    python中List添加、删除元素的几种方法
    python数据处理之基本函数
    python批量处理
    python正则表达式
    python模块学习:os模块
    Hough transform(霍夫变换)
    MODBUS TCP/IP协议规范详细介绍
    Linux下run文件的直接运行
    双边滤波和引导滤波的原理
  • 原文地址:https://www.cnblogs.com/jijm123/p/10594672.html
Copyright © 2011-2022 走看看