PL/SQL - 比较运算符

比较运算符用于将一个表达式与另一个表达式进行比较。 结果总是 TRUE、FALSENULL

运算符 描述 示例
LIKE LIKE 运算符将字符、字符串或 CLOB 值与模式进行比较,如果该值与模式匹配,则返回 TRUE,否则返回 FALSE。 如 'Zara Ali' like 'Z% A_i' 返回布尔值 true,而 'Nuha Ali' like 'Z% A_i' 返回布尔值 false。
BETWEEN BETWEEN 运算符测试值是否在指定范围内。 x BETWEEN a AND b 表示 x >= a 且 x <= b。 如果 x = 10 那么,x 在 5 和 20 之间返回 true,x 在 5 和 10 之间返回 true,但是 x 在 11 和 20 之间返回 false。
IN IN 运算符测试集成员资格。 x IN (set) 表示 x 等于集合的任何成员。 如果 x = 'm',则 x in ('a', 'b', 'c') 返回布尔值 false,但 x in ('m', 'n', 'o') 返回布尔值 true。
IS NULL IS NULL 运算符在其操作数为 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('Zara Ali', 'Z%A_i'); 
   compare('Nuha Ali', '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.

❮ PL/SQL 运算符