我有一张StudentMarks有栏的桌子Name, Maths, Science, English。数据就像
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所需结果集中的列。
Subject
我怎样才能做到这一点?
到目前为止,我已经达到以下查询(获取名称,商标)
select Name, Marks from studentmarks Unpivot ( Marks for details in (Maths, Science, English) ) as UnPvt
您的查询非常接近。您应该能够使用以下内容,其中包括subject最终选择列表中的内容:
subject
select u.name, u.subject, u.marks from student s unpivot ( marks for subject in (Maths, Science, English) ) u;
参见带有演示的SQL Fiddle