Plsql-operators-precedence
提供:Dev Guides
PL/SQL-演算子の優先順位
演算子の優先順位は、式内の用語のグループ化を決定します。 これは、式の評価方法に影響します。 特定の演算子は、他の演算子よりも優先順位が高くなっています。たとえば、乗算演算子は加算演算子よりも優先順位が高くなります。
たとえば、 x = 7 + 3 2 ;ここでは、演算子*の優先順位が+より高いため、 *x には20ではなく 13 が割り当てられます。したがって、最初に 3 2 で乗算され、 *7 に加算されます。
ここでは、優先順位が最も高い演算子が表の上部に表示され、優先順位が最も低い演算子が下部に表示されます。 式内では、優先順位の高い演算子が最初に評価されます。
演算子の優先順位は、=、<、>、⇐、> =、<>、!=、〜=、^ =、IS NULL、LIKE、BETWEEN、INです。
Operator | Operation |
---|---|
** | exponentiation |
+, - | identity, negation |
*,/ | multiplication, division |
+, -, | |
addition, subtraction, concatenation | |
comparison | |
NOT | logical negation |
AND | conjunction |
OR | inclusion |
例
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.