3.3.14 RETURN语句

RETURN语句定义了查询结果集中返回的内容。在查询的RETURN部分定义了模式中感兴趣的部分。它可以是节点、关系或者是它们的属性。RETURN图例如图3-17所示。

提示:如果只需要属性值,就要尽量避免返回整个节点或关系,这样有助于提高性能。

图3-17 RETURN图例

3.3.14.1 返回节点

返回匹配到的节点,如下所示。

查询:

本例中返回包含name属性值为B的节点。

结果:

3.3.14.2 返回关系

返回匹配的关系,如下所示。

查询:

本例中返回了关系。

结果:

3.3.14.3 返回属性

返回属性可以用点来引用属性,如下所示。

查询:

本例中返回了name属性的值。

结果:

3.3.14.4 返回所有元素

当希望返回查询中找到的所有节点、关系和路径时,可以使用星号*表示。如下所示。

查询:

本例中返回了两个节点、关系和路径。

结果:

3.3.14.5 变量中的特殊字符

如果想使用空格等特殊字符,可以用反引号“`”将其括起来,如下所示。

查询:

结果将返回name属性值为A的节点。

结果:

3.3.14.6 列别名

如果希望列名不同于表达式中使用的名字,可以使用AS<new name>对其重命名。

查询:

结果将返回节点的age属性,但列名由原有的age重命名为SomethingTotallyDifferent了。

结果:

3.3.14.7 可选属性

如果某个属性可能存在,也可能不存在。这时,依然可以正常地去查询,对于不存在的属性,Cypher则返回null。

查询:

本例中有age属性的节点返回了具体的年龄,而没有这个属性的节点则返回null。

结果:

3.3.14.8 其他表达式

任何表达式都可以作为返回项,如字面值、断言、属性、函数和任何其他表达式。

查询:

本例中返回了断言、字符串和带模式表达参数的函数调用。

结果:

3.3.14.9 唯一性结果

DISTINCT用于仅仅获取结果集中所依赖列的唯一行。

查询:

本例中只返回了一次name为B的节点。

结果: