PL/SQL - 比较运算符

  • 简述

    比较运算符用于将一个表达式与另一个表达式进行比较。结果总是要么TRUE, FALSE 要么 NULL.
    操作符 描述 例子
    LIKE 运算符将字符、字符串或 CLOB 值与模式进行比较,如果该值与模式匹配,则返回 TRUE,否则返回 FALSE。 如果 'Alex Moo' like 'Z% A_i' 返回布尔值 true,而 'Nuha Moo' like 'Z% A_i' 返回布尔值 false。
    之间 BETWEEN 运算符测试一个值是否在指定范围内。x BETWEEN a AND b 表示 x >= a 且 x <= b。 如果 x = 10,则 5 到 20 之间的 x 返回 true,5 到 10 之间的 x 返回 true,但 11 到 20 之间的 x 返回 false。
    IN 运算符测试集成员资格。x IN (set) 表示 x 等于 set 的任何成员。 如果 x = 'm' 那么 x in ('a', 'b', 'c') 返回布尔值 false 但 x in ('m', 'n', 'o') 返回布尔值 true。
    一片空白 如果操作数为 NULL,则 IS NULL 运算符返回 BOOLEAN 值 TRUE;如果操作数不是 NULL,则返回 FALSE。涉及 NULL 值的比较总是产生 NULL。 如果 x = 'm',则 'x is null' 返回布尔值 false。
  • LIKE 运算符

    该程序测试 LIKE 运算符。在这里,我们将使用一个小procedure() 显示 LIKE 运算符的功能 -
    
    DECLARE 
    PROCEDURE compare (value  varchar2,  pattern varchar2 ) is 
    BEGIN 
       IF value LIKE pattern THEN 
          dbms_output.put_line ('True'); 
       ELSE 
          dbms_output.put_line ('False'); 
       END IF; 
    END;  
    BEGIN 
       compare('Alex Moo', 'Z%A_i'); 
       compare('Nuha Moo', 'Z%A_i'); 
    END; 
    /
    
    在 SQL 提示符下执行上述代码时,会产生以下结果 -
    
    True 
    False  
    PL/SQL procedure successfully completed.
    
  • BETWEEN 运算符

    以下程序显示了 BETWEEN 运算符的用法 -
    
    DECLARE 
       x number(2) := 10; 
    BEGIN 
       IF (x between 5 and 20) THEN 
          dbms_output.put_line('True'); 
       ELSE 
          dbms_output.put_line('False'); 
       END IF; 
        
       IF (x BETWEEN 5 AND 10) THEN 
          dbms_output.put_line('True'); 
       ELSE 
          dbms_output.put_line('False'); 
       END IF; 
        
       IF (x BETWEEN 11 AND 20) THEN 
          dbms_output.put_line('True'); 
       ELSE 
          dbms_output.put_line('False'); 
       END IF; 
    END; 
    /
    
    在 SQL 提示符下执行上述代码时,会产生以下结果 -
    
    True 
    True 
    False 
     
    PL/SQL procedure successfully completed.
    
  • IN 和 IS NULL 运算符

    以下程序显示了 IN 和 IS NULL 运算符的用法 -
    
    ECLARE 
       letter varchar2(1) := 'm'; 
    BEGIN 
       IF (letter in ('a', 'b', 'c')) THEN 
          dbms_output.put_line('True'); 
       ELSE 
          dbms_output.put_line('False'); 
       END IF; 
      
       IF (letter in ('m', 'n', 'o')) THEN 
           dbms_output.put_line('True'); 
       ELSE 
          dbms_output.put_line('False'); 
       END IF; 
        
       IF (letter is null) THEN 
        dbms_output.put_line('True'); 
       ELSE 
          dbms_output.put_line('False'); 
       END IF; 
    END; 
    / 
    
    在 SQL 提示符下执行上述代码时,会产生以下结果:
    
    False
    True
    False
    PL/SQL procedure successfully completed.