运算符优先级 (Entity SQL)
当实体 SQL 查询有多个运算符时,运算符优先级确定执行运算的先后次序。 执行顺序可能对查询结果有明显的影响。
运算符的优先级别如下表中所示。 在较低级别的运算符之前先对较高级别的运算符进行求值。
Level | 操作类型 | 操作员 |
---|---|---|
1 | 主要 | . , [] () |
2 | 一元 | ! not |
3 | 乘法性的 | * / % |
4 | 累加性 | + - |
5 | 中间件排序 | < > <= >= |
6 | 等式 | = != <> |
7 | 条件“与” | and && |
8 | 条件“或” | or || |
当一个表达式中的两个运算符有相同的运算符优先级别时,将按照它们在查询中的位置对其从左到右进行求值。 例如,x+y-z
将计算为 (x+y)-z
。
在查询中可以使用括号替代所定义的运算符的优先级。 首先对括号中的内容进行求值,从而产生一个结果,然后括号外的运算符才可以使用这个结果。 例如,x+y*z
是将 y
乘以 z
,然后再加上 x
,但 (x+y)*z
则是先将 x
与 y
相加,然后将结果乘以 z
。