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

如何实现Columns to row converting完成单列多行转逗号分隔单行

单列多行转逗号分隔单行实现方法

你这个场景属于字符串聚合操作,和常规多列转多行的列转行逻辑有区别,不同环境下的常用实现如下:

  • 支持STRING_AGG函数的数据库(MySQL 8.0+、SQL Server 2017+、PostgreSQL、SQLite)
    直接调用聚合函数即可完成拼接,示例:
    -- 基础写法,需要指定排序规则时可以在函数内补充ORDER BY逻辑
    SELECT STRING_AGG(你的列名, ',') AS result
    FROM Table_A;
    
    注意不同数据库的排序语法略有差异:SQL Server需要加WITHIN GROUP (ORDER BY 排序列),SQLite直接在语句末尾加ORDER BY子句即可。
  • SQL Server 2016及更早版本
    没有内置STRING_AGG,可以用FOR XML PATH方案实现:
    SELECT STUFF(
      (SELECT ',' + 你的列名 FROM Table_A FOR XML PATH(''), TYPE).value('.','nvarchar(max)'),
      1,1,''
    ) AS result;
    
    这里STUFF的作用是移除拼接结果开头多余的逗号。
  • Oracle数据库
    使用内置的LISTAGG函数:
    SELECT LISTAGG(你的列名, ',') WITHIN GROUP (ORDER BY 你的列名) AS result
    FROM Table_A;
    
  • Python Pandas数据处理场景
    如果是在DataFrame中做这个转换,直接用字符串拼接方法:
    import pandas as pd
    # 假设df为读取Table_A得到的DataFrame,存储值的列名为col
    result = df['col'].str.cat(sep=',')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:15:30