我有一个表StudentMarks
,其中包含姓名、数学、科学、英语
列。
数据就像
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
最佳答案
您的查询非常接近。您应该能够使用以下内容,其中在最终选择列表中包含主题
:
select u.name, u.subject, u.marks
from student s
unpivot
(
marks
for subject in (Maths, Science, English)
) u;
关于sql - 使用列名称取消透视,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19055902/