You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将SQL查询中同一PO的多行注释拼接为单行字段

解决方案

你需要使用对应数据库的分组字符串聚合函数实现同PO多行注释的拼接,普通CONCAT函数仅支持同一行多字段拼接,无法满足同分组内多行内容的拼接需求,也不需要额外写JOIN逻辑。不同主流数据库的实现代码如下:

  • MySQL 8.0+/MariaDB 版本实现:
SELECT 
    PO,
    GROUP_CONCAT(COMMENT_LINE ORDER BY SEQUENCE_NUMBER SEPARATOR ', ') AS `COMMENT LINE`
FROM `Database`
GROUP BY PO;
  • PostgreSQL 版本实现:
SELECT 
    PO,
    STRING_AGG(COMMENT_LINE, ', ' ORDER BY SEQUENCE_NUMBER) AS "COMMENT LINE"
FROM "Database"
GROUP BY PO;
  • SQL Server 2017及以上版本实现:
SELECT 
    PO,
    STRING_AGG(COMMENT_LINE, ', ') WITHIN GROUP (ORDER BY SEQUENCE_NUMBER) AS [COMMENT LINE]
FROM [Database]
GROUP BY PO;
  • Oracle 11g及以上版本实现:
SELECT 
    PO,
    LISTAGG(COMMENT_LINE, ', ') WITHIN GROUP (ORDER BY SEQUENCE_NUMBER) AS "COMMENT LINE"
FROM "Database"
GROUP BY PO;

注意:所有示例都默认按SEQUENCE_NUMBER正序拼接注释,保证和原行顺序一致。如果遇到拼接结果被截断的问题,可根据对应数据库的规则调整聚合函数的长度限制参数。

内容的提问来源于stack exchange,提问作者Jordan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 12:54:02