ORDER BY子查询的UNION结果

Gab*_*yas 3 neo4j cypher

我想计算多个子查询的UNION并使用ORDER BY对结果进行排序.

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

(RETURN 2 AS x
UNION
RETURN 1 AS x)
ORDER BY x
Run Code Online (Sandbox Code Playgroud)

并得到以下结果:

?????
?x  ?
?????
?1  ?
?????
?2  ?
?????
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?由于ORDER BY总是与单个WITH/ RETURN子句绑定,我认为这不可行,也不能想到一个好的解决方法.

cyb*_*sam 7

Cypher语言尚不支持联盟后处理.

但是,作为一种变通方法,您应该能够使用APOC过程apoc.cypher.run在"子例程"中执行UNION操作,然后在主Cypher查询中执行后UNION处理.例如:

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