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

如何将SQL查询结果中的多列合并为单列?

将多列SQL查询结果转为单列的解决方案

嘿,我来帮你搞定这个需求!要把多列查询结果合并成单列,其实有几种实用的方法,分场景给你说说:

通用方案(适用于几乎所有数据库):使用UNION ALL

这是最普适的方法,不管你用的是哪种数据库基本都能跑通。原理就是把每一列单独作为一个查询结果,再把这些结果拼接起来。

假设你的表名叫your_table,对应的SQL代码如下:

SELECT Column1 AS SingleColumn
FROM your_table
UNION ALL
SELECT Column2 AS SingleColumn
FROM your_table
UNION ALL
SELECT Column3 AS SingleColumn
FROM your_table;

如果你的表有多行数据,这个查询会把每一行的Column1、Column2、Column3的值依次列出来,完美符合你要的单列格式。

特定数据库的简洁方案

如果你的数据库支持专用的行转列语法,用起来会更简洁:

SQL Server / Oracle:UNPIVOT操作符

这两个数据库原生支持UNPIVOT,专门用来把多列转换成多行单列:

SELECT SingleColumn
FROM your_table
UNPIVOT (
    SingleColumn FOR Columns IN (Column1, Column2, Column3)
) AS unpvt;

PostgreSQL:数组+unnest函数

PostgreSQL可以用数组把多列值打包,再用unnest函数拆成单行:

SELECT unnest(ARRAY[Column1::text, Column2::text, Column3::text]) AS SingleColumn
FROM your_table;

注意这里要把所有列转成相同的数据类型(比如示例里的text),因为数组里的元素类型必须一致。

MySQL 8.0+:JSON_TABLE函数

MySQL 8.0及以上版本可以借助JSON函数来实现:

SELECT j.column_value AS SingleColumn
FROM your_table,
     JSON_TABLE(
         CONCAT('[', QUOTE(Column1), ',', QUOTE(Column2), ',', QUOTE(Column3), ']'),
         '$[*]' COLUMNS (column_value VARCHAR(255) PATH '$')
     ) j;

当然你也可以直接用前面的通用UNION ALL方案,效果是一样的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:16:03