Skip to content

适用虚谷数据库版本

v12.10.8



适用虚谷数据库版本

v12.10.8


运算符优先级

📄字数 501
👁️阅读量 加载中...

XuguDB中提供的运算符优先级总览如下,运算符优先级由高到低,同一层级运算符优先级相同。优先级通常表现为:算术运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符。

运算符描述
.表/列名称分隔符
::类型转换
[]数组下标访问
+ - ~一元加法、一元减法、按位非
^指数运算,详情见^(按位异或)
* /乘法、除法,详情见算术运算符
+ -加法、减法,详情见算术运算符
其他复杂运算符位运算符(<< >> & |) 连接运算符(||) JSON运算符 几何运算符等其他复杂运算符
> < =(比较) >= <= <>比较运算符
NOT逻辑运算符,逻辑否定
AND逻辑运算符,逻辑与
OR逻辑运算符,逻辑或
=(赋值)赋值运算符

提示

=在SQL里充当两种“语法角色”(比较运算和赋值运算),两者通过语法上下文进行区分。

对于日期时间运算符中的+-*/运算符其优先级同算术运算符,<=>=<=<>运算符优先级同比较运算符。对于几何运算符中的+-*/<=>=<=<>也同样如此。除此之外,几何运算符中的<<>>运算符优先级同位运算符中的<<>>

在其他复杂运算符中,大多数运算符具有相同优先级,且是左结合的。运算符的优先级和结合性硬编码在语法文件中,若想要改变默认的解析顺序,必须使用括号()来明确表达式的计算顺序。例如:

sql
SQL> select 1 + 1 * 2;

+-------+
| EXPR1 |
+-------+
| 3     |
+-------+

SQL> select (1 + 1) * 2;

+-------+
| EXPR1 |
+-------+
| 4     |
+-------+