PL/SQL比較運算子

2019-10-16 22:54:21

比較運算子用於將一個表示式與另一個表示式作比較。結果始終為TRUEFALSENULL

比較運算子範例

運算子 描述 範例
LIKE LIKE運算子將字元,字串或CLOB值與模式進行比較,如果值與模式匹配,則返回TRUE,否則返回FALSE 如果'Zara Ali' LIKE 'Z%A_i'返回一個布林值true,而'Nuha Ali' LIKE'Z%A_i'返回一個布林值。
BETWEEN BETWEEN運算子測試值是否在指定範圍內。x BETWEEN a AND b表示x >= ax <= b 如果x = 10,那麼在520之間則x返回truex510之間則x返回true,但是x1120之間返回false
IN IN運算子測試整合員資料。 x IN(set)表示x等於集合中的任何成員資料。 如果x ='m',則在('a','b','c')x返回false,而在('m','n','o')x返回true
IS NULL IS NULL運算子如果其運算元為NULL返回值為TRUE,如果不為NULL則返回FALSE。 涉及NULL值的比較總是產生NULL 如果x ='m',則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運算子

以下程式顯示INIS 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.