关于列名问题我有张桌子StudentMarks列Name, Maths, Science, English..数据就像Name, Maths, Science, English
Tilak, 90, 40, 60 Raj, 30, 20, 10我想把它安排如下:Name, Subject, Marks
Tilak, Maths, 90Tilak, Science, 40Tilak, English, 60带着不枢轴我能够正确地获取名称,标记,但不能将源表中的列名获取到Subject列在所需的结果集中。我怎样才能做到这一点?到目前为止,我已经达到了以下查询(获取名称,标记)select Name, Marks from studentmarksUnpivot(
Marks for details in (Maths, Science, English)) as UnPvt
2 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
subject
select u.name, u.subject, u.marksfrom student sunpivot( marks for subject in (Maths, Science, English)) u;
莫回无
TA贡献1865条经验 获得超7个赞
使用交叉联接为每行创建多个副本(本例中还创建了Subject列) 创建列“标记”并使用案例表达式填写相关值(例如:如果主题是科学,那么从科学列中选择值) 删除任何空组合(如果存在,如果基表中没有空值,则可以完全避免表达式) select * from ( select name, subject, case subject when 'Maths' then maths when 'Science' then science when 'English' then english end as Marksfrom studentmarksCross Join (values('Maths'),('Science'),('English')) AS Subjct(Subject))as Dwhere marks is not null;
添加回答
举报
0/150
提交
取消