当前位置: 首页 > 面试题库 >

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

钱星辰
2023-03-14
问题内容

我有一些格式的数据:

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中执行此操作?


问题答案:

如果您的得分列是固定的,并且不需要汇总,则可以使用多个SELECTUNION 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



 类似资料:
  • 我需要将长数据格式(long)转换为宽格式(wide),条件如下(如果可能): 1) 所有数据文件都将是具有相同结构(id、名称、值)的长格式(long),但每个数据文件将具有不同的变量、值和变量数: 2) 每个数据文件将是不同的变量混合物(因子、整数、数字)。有些因素可能每个案例都有多个级别(从长远来看是水果和肉),我想为这些因素中的每个级别创建一个单独的虚拟变量(逻辑)。因子和数值变量的数量将

  • 我使用的是Java8,我有一个方法接受长格式参数的日期,并从库返回中的日期。 在java版本<8之前,我使用,但是现在我需要使用,但是我找不到关于如何将值转换为的文档。 现在: 谢谢你的帮助!

  • 问题内容: 我正在使用SQL Server 2008,并且想要将表数据转换为json格式。我可以通过触发查询直接将其转换吗? 问题答案: SQL Server 2016中添加了对格式化查询结果的内置支持,它将在Azure数据库中可用。在旧版本中,您将需要使用CLR或一些繁重的TSQL,例如: 通过TSQL从SQL Server查询中产生JSON文档

  • 问题内容: sql server 2000表之一中具有以下格式的日期值 如何将上述格式的数据值转换为24小时日期格式,如下所示 问题答案: 试试这个: 首先将日期转换为,然后您可以按以下方式进行操作:

  • 问题内容: 如何在SQL Server 2008中将小时格式的时间转换为小时格式的时间? 问题答案: 当前时间是否在类型为time的变量/列中?如果是这样,这很容易: 结果: 如果在变量中,则必须在运行CONVERT之后删除日期部分。如果在字符串中,请先将其添加到中,然后使用上面的代码。

  • 问题内容: 我正在尝试将Shift_JIS格式的文件转换为UTF-8格式。为此,下面是我的方法: 读取Shift_JIS文件 每行的getBytes并将其转换为UTF-8 创建新文件并将UTF-8转换后的值写入该文件 问题是在第2步中没有发生转换。我正在使用下面的代码将Shift_JIS转换为UTF-8: 请让我知道是否需要其他信息。 我有以下两个 问题 : 1.还有其他更好的方法(步骤)来执行此