运算符优先级
seekdb 目前支持算术运算符、位运算符、比较运算符、逻辑运算符、日期时间运算符、字符连接运算符和排序规则运算符等。
运算符优先级概览
运算符从最高优先级到最低优先级如下所示。同一行上的运算符具有相同的优先级。
COLLATE
!
- (一元减), ~ (一元位反转)
^
*, /, DIV, %, MOD
-, +
<<, >>
&
|
= (比较), <=>, >=, >, <=, <, <>, !=, IN
BETWEEN,
NOT
AND, &&
XOR
OR, ||
= (赋值), :=
说明
-
=的优先级取决于它是用作比较运算符 (=) 还是用作赋值运算符 (=)。当用作比较运算符时,它具有与<=>、>=、>、<=、<、<>和!=相同的优先级;当用作赋值运算符时,它具有与:=相同的优先级。 -
如果在表达式中出现相同优先级的运算符,从左到右进行计算,但赋值运算从右到左。
-
如下运算符的优先级和含义取决于 SQL 模式:
-
默认情况下,
||是逻辑OR运算符。启用PIPES_AS_CONCAT后,||是字符串连接,优先级在^和一元运算符之间。 -
默认情况下,
!具有比NOT更高的优先级。启用HIGH_NOT_PRECEDENCE后,!并且不具有相同的优先级。
-