如何在Apache Age的Cypher查询中用RETURN关键字返回多列?
问题解决方法
这个错误的核心原因是:你的Cypher查询返回了两个结果字段(a.name和b.name),但在PostgreSQL的cypher函数结果定义中只声明了一个列,导致返回行结构和列定义不匹配。
你可以通过以下两种方式解决:
方式1:将多个结果打包为单个agtype对象返回
修改Cypher查询,把两个字段合并成一个结构化对象,让结果列数和定义的列数一致:
test=# SELECT * FROM cypher('first_graph', $$ MATCH (a:Person)-[]->(b:Person) RETURN {from: a.name, to: b.name} $$) as (v agtype);
方式2:声明与返回字段数量匹配的结果列
如果需要分别获取两个字段的值,在as (...)中声明对应数量的agtype类型列:
test=# SELECT * FROM cypher('first_graph', $$ MATCH (a:Person)-[]->(b:Person) RETURN a.name, b.name $$) as (a_name agtype, b_name agtype);
内容的提问来源于stack exchange,提问作者ahmed_131313
相关产品推荐
相关产品推荐

