运算符优先级

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

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

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

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

示例

  1. nebula> RETURN 2+3*5;
  2. +-----------+
  3. | (2+(3*5)) |
  4. +-----------+
  5. | 17 |
  6. +-----------+
  7. nebula> RETURN (2+3)*5;
  8. +-----------+
  9. | ((2+3)*5) |
  10. +-----------+
  11. | 25 |
  12. +-----------+

openCypher兼容性

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

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