PL/SQL運算符優先順序

運算符優先順序決定運算式中術語的分組。這會影響運算式的評估求值順序。某些運算符的優先順序高於其他運算符; 例如,乘法運算符的優先順序高於加法運算符。

例如,x = 7 + 3 * 2; 這裏,求值結果x的值為13,而不是20,因為運算符 *的優先順序高於+,所以它首先被乘以3 * 2,然後再加上7

在這裏,優先順序最高的運算符出現在表的頂部,最底層的運算符出現在底部。在一個運算式中,將首先評估求值較高優先順序的運算符。

運算符的優先順序如下:=<><=>=<>!=〜=^=IS NULLLIKEBETWEENIN

運算符優先順序示例

運算符 操作描述
** 指數冪運算符
+, - 識別字,負數
*, / 乘法,除法
+, -, ΙΙ 加,減,連接
NOT 邏輯否定
AND 連詞(邏輯與)
OR 包含(邏輯或)

示例
嘗試以下示例來瞭解PL/SQL中可用的運算符優先順序 -

DECLARE
   a number(2) := 20;
   b number(2) := 10;
   c number(2) := 15;
   d number(2) := 5;
   e number(2) ;
BEGIN
   e := (a + b) * c / d;      -- ( 30 * 15 ) / 5
   dbms_output.put_line('Value of (a + b) * c / d is : '|| e );
   e := ((a + b) * c) / d;   -- (30 * 15 ) / 5
   dbms_output.put_line('Value of ((a + b) * c) / d is  : ' ||  e );
   e := (a + b) * (c / d);   -- (30) * (15/5)
   dbms_output.put_line('Value of (a + b) * (c / d) is  : '||  e );
   e := a + (b * c) / d;     --  20 + (150/5)
   dbms_output.put_line('Value of a + (b * c) / d is  : ' ||  e );
END;
/

當上述代碼在SQL提示符下執行時,它會產生以下結果 -

Value of (a + b) * c / d is : 90
Value of ((a + b) * c) / d is  : 90
Value of (a + b) * (c / d) is  : 90
Value of a + (b * c) / d is  : 50

PL/SQL procedure successfully completed.

上一篇: PL/SQL運算符 下一篇: PL/SQL條件控制