在 SQL 中将数据从宽格式转换为长格式 [英] Convert data from wide format to long format in SQL

查看:39
本文介绍了在 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?

推荐答案

如果你的分数列是固定的并且你不需要聚合,你可以使用多个 SELECTUNION 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆