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 between 5 and 20 返回 true,x between 5 and 10 返回 true,但 x between 11 and 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 則返回布林值 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.
plsql_operators.htm
廣告