在 SQL 中将数据从宽格式转换为长格式 [英] Convert data from wide format to long format in SQL
本文介绍了在 SQL 中将数据从宽格式转换为长格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一些格式的数据:
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 中执行此操作?
How can I do this in SQL?
推荐答案
如果你的分数列是固定的并且你不需要聚合,你可以使用多个 SELECT
和 UNION ALL
语句以生成您请求的数据形状.例如
Provided your score columns are fixed and you require no aggregation, you can use multiple SELECT
and UNION ALL
statements to generate the shape of data you requested. E.g.
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
这篇关于在 SQL 中将数据从宽格式转换为长格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文