根据单个查询中某个节点的属性,有没有办法在升序或降序之间进行选择?
假设我有两个节点类型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)
答案 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