運算符優先順序決定運算式中術語的分組。這會影響運算式的評估求值順序。某些運算符的優先順序高於其他運算符; 例如,乘法運算符的優先順序高於加法運算符。
例如,x = 7 + 3 * 2
; 這裏,求值結果x
的值為13
,而不是20
,因為運算符 *
的優先順序高於+
,所以它首先被乘以3 * 2
,然後再加上7
。
在這裏,優先順序最高的運算符出現在表的頂部,最底層的運算符出現在底部。在一個運算式中,將首先評估求值較高優先順序的運算符。
運算符的優先順序如下:=
,<
,>
,<=
,>=
,<>
,!=
,〜=
,^=
,IS NULL
,LIKE
,BETWEEN
,IN
。
運算符 | 操作描述 |
---|---|
** |
指數冪運算符 |
+ , - |
識別字,負數 |
* , / |
乘法,除法 |
+ , - , ΙΙ |
加,減,連接 |
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條件控制