
上QQ阅读APP看书,第一时间看更新
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的节点。
结果:
