如何把Cypher查询的结果拼接在一起?

编程语言 2026-07-09

我运行了下面的Cypher查询,它输出的是有序的字符串:

match(n:Node)

where n.O127_H6_E2348_69_193637c_0_node is NOT NULL

ORDER BY n.O127_H6_E2348_69_193637c_0_node

MATCH (s:Sequence)

where s.name = n.name

return s.sequence

我想把结果按相同的顺序拼接成一个大的字符串,以便得到完整的序列。是否可以直接在Cypher中实现?

解决方案

是的。例如,使用 , 作为分隔符,你可以将 RETURN 改成如下:

MATCH (n:Node)
WHERE n.O127_H6_E2348_69_193637c_0_node is NOT NULL
ORDER BY n.O127_H6_E2348_69_193637c_0_node
MATCH (s:Sequence)
  WHERE s.name = n.name
RETURN 
  rtrim(reduce(acc = '', seq IN collect(s.sequence) | acc + seq + ','), ',') 
    AS result

这使用了:

  • collect:将每行中的s.sequence值聚合成一个列表
  • reduce:使用reduce函数将该列表转换成字符串
  • rtrim:去除末尾多余的分隔符
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章