Neo4J Cypher按值分类下降或上升

时间:2016-10-26 08:06:21

标签: neo4j cypher

根据单个查询中某个节点的属性,有没有办法在升序或降序之间进行选择?

假设我有两个节点类型A和B.A有一个属性,指定我想如何对B进行排序。

MATCH (a:A)-[:has]->(b:B)
WHERE a.id=1
ORDER BY b.name  ----- (I'd like to order ascending if a.asc is true or descending if false)

1 个答案:

答案 0 :(得分:2)

您可以使用UNION,它允许您将多个子查询组合到单个查询中:"它将两个或多个查询的结果组合到一个结果集中,该结果集包含属于的所有行联盟中的所有查询。"

在这种情况下,根据a.prop的值,我们按升序或降序排列。

MATCH (a:A)-[:has]->(b:B)
WHERE a.prop = "x"
RETURN b
ORDER BY b.name ASC
UNION
MATCH (a:A)-[:has]->(b:B)
WHERE a.prop <> "x"
RETURN b
ORDER BY b.name DESC