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

Microsoft SQL Server如何使用UNPIVOT实现多列转单列?

实现方案

Microsoft SQL Server原生支持UNPIVOT语法,和你在Oracle中使用的实现逻辑基本一致,可直接使用如下语句得到目标结果:

SELECT Col
FROM [SINGLE_COL]
UNPIVOT (
    -- 定义转换后输出的列名
    Col 
    -- 定义存储原列名的字段,不需要输出可以不查询该字段
    FOR OriginalColumn IN ([COL1], [COL2], [COL3])
) AS UnpivotResult

如果你需要兼容更早期的SQL Server版本,或者需要保留原数据中的NULL值(UNPIVOT默认会过滤值为NULL的行),可以使用CROSS APPLY + VALUES的替代实现,效果一致:

SELECT v.Col
FROM [SINGLE_COL] t
CROSS APPLY (
    VALUES ([COL1]), ([COL2]), ([COL3])
) AS v(Col)

两种写法执行后都会得到你期望的单列输出:

COL
A
B
C
D
E
F

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:06:02