语法-null相关

Neo
Neo
2022-03-22 / 0 评论 / 63 阅读

本节内容源自Cypher官方手册V4.4版,笔者对其进行学习、翻译、记录。

null简介

在 Cypher 中,null用于表示缺失或未定义的值,它的处理方式与其他值有所不同。例如,从没有属性的节点获取属性会产生null. 大多数以null作为输入的表达式都会产生null.

null不等于null。不知道两个值并不意味着它们是相同的值。所以表达式null=null会产生null而不是true。

带有null的逻辑操作

image.png

In操作和null

image.png

[ ]操作和null

只要用null去访问列表,结果都是null,如下
image.png

使用参数传入边界,例如a[$lower..$upper],可能会导致null下限或上限。以下解决方法将通过设置绝对最小和最大界限值来防止这种情况发生:

a[coalesce($lower,0)..coalesce($upper,size(a))]

返回null的表达式

  • 从列表中获取缺少的元素:[][0],head([])

  • 尝试访问节点或关系上不存在的属性:n.missingProperty

  • 任何一方为null时的比较:1 < null

  • 包含null的算术表达式:1 + null

  • 任何参数为null的函数调用:sin(null)

使用Is null 或者 Is not null

使用=运算符或<>运算符针对null测试任何值时,结果总是为null。因此,请使用特殊的相等运算符IS NULL或IS NOT NULL。