带有列名的Unpivot?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (71)

我有一张StudentMarks带有列的表格Name, Maths, Science, English。数据就像如下:

Name,  Maths, Science, English  
Tilak, 90,    40,      60  
Raj,   30,    20,      10

我想把它安排成如下形式:

Name,  Subject,  Marks
Tilak, Maths,    90
Tilak, Science,  40
Tilak, English,  60

使用unpivot,我可以正确地获取Name,Marks,但无法将源表中的列名称获取到Subject所需结果集中的列。

我怎样才能做到这一点?

到目前为止,我已经达到以下查询(获得名称,标记)

select Name, Marks from studentmarks
Unpivot
(
  Marks for details in (Maths, Science, English)

) as UnPvt
提问于
用户回答回答于

你的查询非常接近。你应该能够使用以下内容,其中包括subject最终选择列表中的内容:

select u.name, u.subject, u.marks
from student s
unpivot
(
  marks
  for subject in (Maths, Science, English)
) u;

所属标签

可能回答问题的人

  • 腾讯云数据库 TencentDB

    腾讯云 · 产品团队 (已认证)

    302 粉丝2 提问51 回答
  • EatRice

    17 粉丝0 提问183 回答
  • 华讯云

    1 粉丝0 提问156 回答
  • 成都加米谷大数据

    11 粉丝0 提问16 回答

扫码关注云+社区

领取腾讯云代金券