跳转至

运算符优先级

nGQL 运算符的优先级从高到低排列如下(同一行的运算符优先级相同):

  • -(负数)
  • !NOT
  • */%
  • -+
  • ==>=><=<<>!=
  • AND
  • ORXOR
  • =(赋值)

如果表达式中有相同优先级的运算符,运算是从左到右进行,只有赋值操作是例外(从右到左运算)。

运算符的优先级决定运算的顺序,要显式修改运算顺序,可以使用圆括号。

示例

nebula> RETURN 2+3*5;
+-----------+
| (2+(3*5)) |
+-----------+
| 17        |
+-----------+

nebula> RETURN (2+3)*5;
+-----------+
| ((2+3)*5) |
+-----------+
| 25        |
+-----------+

openCypher 兼容性

在 openCypher 中,比较操作可以任意连接,例如x < y <= z等价于x < y AND y <= z

在 nGQL 中,x < y <= z等价于(x < y) <= z(x < y)的结果是一个布尔值,再将布尔值和z比较,最终结果是NULL


最后更新: July 6, 2023