Oracle PL / SQL运算符

连接运算符

串联运算符||将一个字符串操作数附加到另一个。

每个字符串可以是CHAR,VARCHAR2,CLOB。

如果任一个字符串是CLOB,则结果是临时CLOB; 否则,它是一个VARCHAR2值。

下面的代码连接运算符。

DECLARE 
  x VARCHAR2(4) := 'Hi'; 
  y VARCHAR2(10) := ' Hey'; 
BEGIN 
  DBMS_OUTPUT.PUT_LINE (x || y); 
END; 
/ 

 

逻辑运算符

下表是PL / SQL逻辑运算符的逻辑真值表。

小心NULL值。

x y x AND y x OR y NOT x
TRUE TRUE TRUE TRUE FALSE
TRUE FALSE FALSE TRUE FALSE
TRUE NULL NULL TRUE FALSE
FALSE TRUE FALSE TRUE TRUE
FALSE FALSE FALSE FALSE TRUE
FALSE NULL FALSE NULL TRUE
NULL TRUE NULL TRUE NULL
NULL FALSE FALSE NULL NULL
NULL NULL NULL NULL NULL

 

关系运算符 

操作员 含义
= 等于
<>,!=,〜=,^ = 不等于
< 少于
> 比...更棒
<= 小于或等于
> = 大于或等于

 

BETWEEN运算符

BETWEEN运算符测试值是否在指定范围内。

a和b之间的意思是x> = a和x <= b。

 

IN运算符

IN运算符测试集成员资格。

x IN set 意味着x等于集合的任何成员。

 

运算符优先级

表达式中的操作按优先级顺序进行计算。

具有相等优先级的运算符不以特定顺序应用。

我们可以使用括号来控制评估的顺序。

下表显示了从最高到最低的运算符优先级。

Operator Operation
** exponentiation
+, - identity, negation
*, / multiplication, division
+, -, || addition, subtraction, concatenation
=, <, >, <=, >=, <>, !=, ~=, ^=, IS NULL, LIKE, BETWEEN, IN comparison
NOT logical negation
AND conjunction
OR inclusion
DECLARE 
  salary      NUMBER := 60000; 
  commission  NUMBER := 0.10; 
BEGIN 
 
  DBMS_OUTPUT.PUT_LINE(5 + 12 / 4); 
  DBMS_OUTPUT.PUT_LINE(12 / 4 + 5); 
 
  DBMS_OUTPUT.PUT_LINE((8 + 6) / 2); 
 
END; 
/