• oracle:case 语句使用


    case 语句带有选择效果知返回第一个条件满足要求的语句,即语句一语句二都的判断都为 true ,返回排在前面的。

    case 的语法根据放置的位置不同而不同。

    一.case 语句

    CASE SELECTOR
        WHEN EXPRESSION_1 THEN STATEMENT_1;
        [WHEN EXPRESSION_2 THEN STATEMENT_2;]
        [...]
        [ELSE STATEMENT_N+1 ;]
    END CASE;

    这个是一般语句,注意 在then  后面需要 ; 分号,而且结束的时候  是 END CASE ;

    CASE v_element
        WHEN  xx  THEN yy;
        WHEN  xxx THEN  yyy;
        ELSE  yyyy;
    END CASE;

    当v_element 等于 xx 时,执行 yy 语句,如果很长可以 前后加 begin 和 end,判断的条件是  v_element =xx ,xx是 具体值。

    二.搜索式 case 语句

    CASE 
        WHEN SEARCH_CONDITION_1 THEN STATEMENT_1;
        [WHEN SEARCH_CONDITION_1 THEN STATEMENT_2;]
        [...]
        [ELSE STATEMENT_N+1 ;]
    END CASE;
    CASE 
        WHEN  v_element=xx  THEN yy;
        WHEN  v_element=xxx THEN  yyy;
        ELSE  yyyy;
    END CASE;

    按顺序执行  选择条件 ,可以是 < > = 等,然后执行后面的语句,遇到一个为true 时将停止。

    三.case表达式

    前两个可以归一类,起码写法上类似,用case 语句做表达式,意思是可以这么写:

    v_element:= CASE xx 
                                WHEN  x THEN y
                                ELSE yy
                         END;
    
    or
    
    select  CASE xx
                        WHEN x THEN y
                        ELSE YY
               END
               ....

    就是把case 放在一条语句里面, 删除 END CASE 中的CASE 和 最后的 ; 分号,中间语句的分号也要删掉。

    可以把 case 至  end  看成一个值,最后面的分号是语句的要求,类似  a:= v ;  这样的写法。

    四.NULLIF

    这个是case 的变种函数,结构 :

    NULLIF(xx,yy );

    如果 xx = yy ,则返回 NULL, 如果不等啫返回 xx。

    注意,在这函数中xx 参数不能为 NULL,即

    NULLIF(NULL,0);

    是错的。

    五.COALESCE

    把表达式中的每个表达式与NULL比较,返回第一个非NULL 的表达式的值。结构如下:

    COALSECE (x1,x2,...,xn);

    写法上可以将最后的写为0 ,这么就类似于CASE 中的else 选项。

  • 相关阅读:
    高可用OpenStack(Queen版)集群-6.Nova控制节点集群
    UML建模相关工具一览
    Java 常用资源工具集合
    [开发工具]Java开发常用的在线工具
    Beyond Compare 4解除到期限制的技巧
    [转]一个非常实用而且精妙的算法-并查集(java语言实现)
    Java实现比较两个List集合是否相等
    Java比较两个List集合的方法
    [转]Java & PHP RSA 互通密钥、签名、验签、加密、解密
    【LeetCode】192周赛-5428. 重新排列数组
  • 原文地址:https://www.cnblogs.com/Azhu/p/2600006.html
Copyright © 2020-2023  润新知