SQL Server Query - 如何逐行转置并将它们堆叠起来? [复制]
Posted
技术标签:
【中文标题】SQL Server Query - 如何逐行转置并将它们堆叠起来? [复制]【英文标题】:SQL Server Query - how transpose line by line and stack them up? [duplicate] 【发布时间】:2018-10-04 12:55:04 【问题描述】:我想改造下表:
ID Var1 Var2 Var3 Var4
112233 1 2 3 4
112233 5 6 7 8
112233 9 10 11 12
变成如下的样子
ID VarName Value
112233 Var1 1
112233 Var1 2
112233 Var1 3
112233 Var1 4
112233 Var2 5
112233 Var2 6
112233 Var2 7
112233 Var2 8
112233 Var3 9
112233 Var3 10
112233 Var3 11
112233 Var3 12
有简单的方法吗?
【问题讨论】:
【参考方案1】:使用反透视:
demo
select id,varname, value from tablename
Unpivot
(
value for varname in (var1, var2, var3,var4)
) as UnPvt
【讨论】:
【参考方案2】:你可以使用apply
:
select id, VarName, value
from table t cross apply
( values ('Var1', var1), ('Var2', var2), ('Var3', var3)
) tt (VarName, value)
order by VarName;
【讨论】:
以上是关于SQL Server Query - 如何逐行转置并将它们堆叠起来? [复制]的主要内容,如果未能解决你的问题,请参考以下文章