zoukankan      html  css  js  c++  java
  • 【Oracle】IF语句

    IF语句可以有3种使用方法,如下表:

    IF类型 特点
    IF THEN END IF; 这是if最简单的语法。IF与WHEN之间的条件决定了在WHEN和END IF之间一系列语法是否会被执行。如果条件部分的求值结果是FALSE或者NULL,这些代码就不会被执行。
    IF THEN ELSE END IF; 这种组合形式的逻辑实现了二选一的逻辑。根据对位于IF和THEN两个关键字之间的条件的求值结果,要么THEN和ELSE之间的代码被执行,要么ELSE和END IF之间的代码被执行。总之,这两部分代码肯定是有一个会被执行。
    IF THEN LESIF ELSE END IF; 这是IF语句最后一个也是最复杂的使用形式。IF语句会从一系列互斥条件中选择一个TRUE的,然后执行该条件关联语句。

    1.IF语句语法

    1.1 IF-THEN组合

    IF-THEN语法的常见格式如下:

    IF condition
    THEN
          ...执行的语句...
    END IF;
    

    其中,condition是一个布尔类型的变量、常量,其值可能存在三种情况:TRUE,FALSE,NULL

                                              三值逻辑
    

    例如存在这样的条件 IF sal > 1000; dbms_output.put_line('null');END IF;,这个条件可能返回TRUE,FALSE,但是当sal的值是NULL的时候,也就是:IF NULL > 1000,返回的值就是NULL
    上述情况为了避免NULL值产生,我们可以使用IF sal > 1000 OR sal is null; dbms_output.put_line('null');END IF;来避免,也可以使用空值处理函数处理

    1.2 IF-THEN-ELSE组合

    语法格式如下:

    IF condition
    THEN
         ... TRUE sequence of executeable statements ... 
    ELSE
        ... FALSE/NULL sequence of executeable statements ...  
    END IF;
    

    1.3 IF-THEN-ELSIF组合

    要特别注意:此处是ELSIF不是ELSEIF,写成ELSE IF也是不行的。
    语法格式如下:

    IF condition-1
    THEN
          statements-1
    ELSIF condition-N
    THEN
          statements-N
    [ELSE
          else-statements]
    END IF;
    

    2.短路求值

    PL/SQL使用短路求值方法,也就是说PL/SQL不需要对一个IF语句中的所有表达式都去求值。比如,当对下面这个IF语句中的表达式求值的时候,如果第一个条件是FALSE或者NULL,则PL/SQL会停止对表达式继续求值,立即跳转到ELSE分支上;

    IF condition1 AND condition2
    THEN
          ...
    ELSE
          ...
    END IF;
    
    

    根据短路求值原理,存在多个条件时,一定要将会消耗大量的CPU和内存资源的条件放到整个条件集的最后。

  • 相关阅读:
    Epplus 设置excel 页边距 及多文件合并
    datagridview 纵向 横向 合并单元格
    datagridview 单元格类型转换【备忘】
    C#中另类自定义公式计算 字符串转换为计算公式,并得出计算结果【转载】
    T-sql 根据bak文件恢复新建数据库
    python实现K-means 并进行演示
    PHP底层架构和运行流程
    go语言中的invalid character 'x00' after top-level value
    操作系统中线程的实现模型
    eclipse编译器配置Go开发环境
  • 原文地址:https://www.cnblogs.com/OliverQin/p/13255338.html
Copyright © 2011-2022 走看看