Neo4j 按子查询并集的结果排序

Neo4j 按子查询并集的结果排序,neo4j,cypher,Neo4j,Cypher,我想计算多个子查询的排序,并使用 所以我想运行这个查询(用伪密码编写): 并得到如下结果: ╒═══╕ │x │ ╞═══╡ │1 │ ├───┤ │2 │ └───┘ 有办法做到这一点吗?由于ORDER BY总是绑定到一个/子句,我认为这是不可能的,我也无法想出一个好的解决方法。Cypher语言还不支持 但是,作为一种解决方法,您应该能够使用APOC过程在“子例程”中执行并集操作,然后在主密码查询中执行并集后处理。例如: CALL apoc.cypher.run("RETURN 2 A

我想计算多个子查询的排序,并使用

所以我想运行这个查询(用伪密码编写):

并得到如下结果:

╒═══╕
│x  │
╞═══╡
│1  │
├───┤
│2  │
└───┘

有办法做到这一点吗?由于ORDER BY总是绑定到一个/子句,我认为这是不可能的,我也无法想出一个好的解决方法。

Cypher语言还不支持

但是,作为一种解决方法,您应该能够使用APOC过程在“子例程”中执行并集操作,然后在主密码查询中执行并集后处理。例如:

CALL apoc.cypher.run("RETURN 2 AS x UNION RETURN 1 AS x", NULL) YIELD value
RETURN value.x AS x
ORDER BY x;

更新:现在可以在Neo4j 4.0中使用。

感谢您参考相关问题并提供解决方法。这是一个非常常见的用例的有用答案。感谢您分享此答案。使用新的
CALL
子句更新了答案。
CALL apoc.cypher.run("RETURN 2 AS x UNION RETURN 1 AS x", NULL) YIELD value
RETURN value.x AS x
ORDER BY x;