Cypher ORDER BY语句的用法(附带实例)
ORDER BY 语句不能对节点或关系进行排序,只能根据属性值进行排序。
我们先删除图中的所有节点和关系,代码如下:
然后创建节点,代码如下:

图 1 节点和关系构成的图(ORDER BY语句)
具体代码如下:
我们先删除图中的所有节点和关系,代码如下:
MATCH (n) DETACH DELETE n上述代码会删除所有的节点及关系,读者在使用过程中一定要谨慎。
然后创建节点,代码如下:
CREATE ({name:"A",length:170,age:34}) CREATE ({name:"B",age:34}) CREATE ({name:"C",length:185,age:32})最后创建关系,代码如下:
MATCH (A{name:"A"}),(B{name:"B"}),(C{name:"C"}) CREATE (A) - [:KNOWS] -> (B) CREATE (B) - [:KNOWS] -> (C)由节点和关系构成的图如下图所示:

图 1 节点和关系构成的图(ORDER BY语句)
ORDER BY语句根据属性排序节点
ORDER BY 语句可用于对 MATCH 语句查询返回的结果进行排序,具体代码如下:MATCH (n) RETURN n.name, n.age ORDER BY n.name返回值如下:
│"n.name"│"n.age"│ │"A" │34 │ │"B" │34 │ │"C" │32 │在默认情况下,ORDER BY 语句对 MATCH 语句查询返回的结果按升序进行排序,如果要按照降序对返回结果进行排序,那么可以添加 DESC 关键字。
ORDER BY语句按多个属性排序节点
ORDER BY 语句中可指定多个属性,实现按照多个属性值排序的结果。对于多个属性,Cypher 首先根据列出的第一个属性值对结果进行排序,然后按照第二个属性值对排序后属性值相等的属性值进行排序,依次类推。具体代码如下:
MATCH (n) RETURN n.name, n.age ORDER BY n.age, n.name返回值如下:
│"n.name"│"n.age"│ │"C" │32 │ │"A" │34 │ │"B" │34 │可以看出,排序是先根据 age 属性值进行的,然后对 age 属性值相等的节点根据 name 属性值进行排序。
ORDER BY语句按降序排序
对排序结果按降序排序,具体代码如下:MATCH (n) RETURN n.name ORDER BY n.name DESC返回值如下:
│"n.name"│ │"C" │ │"B" │ │"A" │