在 SQL 中将数据从宽格式转换为长格式

2023-11-24

我有一些格式的数据:

VAR1 VAR2 Score1 Score2 Score3
A     B    1      2      3

我需要将其转换为格式

VAR1 VAR2 VarName Value
 A     B  Score1   1
 A     B  Score2   2
 A     B  Score3   3

我怎样才能在 SQL 中做到这一点?


如果您的分数列是固定的并且不需要聚合,则可以使用多个SELECT and UNION ALL语句来生成您请求的数据形状。例如。

SELECT [VAR1], [VAR2], [VarName] = 'Score1', [Value] = [Score1]
FROM [dbo].[UnknownMe]
UNION ALL
SELECT [VAR1], [VAR2], [VarName] = 'Score2', [Value] = [Score2]
FROM [dbo].[UnknownMe]
UNION ALL
SELECT [VAR1], [VAR2], [VarName] = 'Score3', [Value] = [Score3]
FROM [dbo].[UnknownMe]

SQL 小提琴:http://sqlfiddle.com/#!6/f54b2/4/0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 SQL 中将数据从宽格式转换为长格式 的相关文章

随机推荐