读书人

PIVOT行转列有关问题

发布时间: 2013-02-15 15:46:56 作者: rapoo

PIVOT行转列问题,高手进
行转列怎么显示内容?而不是统计数量
比如说成绩表:姓名,考试月份,科目,成绩:
namemonthsubjectscore
张三2012-09数学80
张三2012-09语文30
张三2012-09英语30
李四2012-09英语45
李四2012-09语文34
张三2012-10化学10
王五2012-10物理30

现在只能够统计:

 select * from 
(select * from exam) p PIVOT( max(score) for subject in ([数学],[语文],[英语],[物理],[化学]))
as pvt

=========================================================
namemonth数学语文英语物理化学
李四2012-09NULL3445NULLNULL
张三2012-09803030NULLNULL
王五2012-10NULLNULLNULL30NULL
张三2012-10NULLNULLNULLNULL10
=========================================================
如果成绩是字符串呢,这个效果如何实现:
namemonth数学语文英语物理化学
李四2012-09NULL很菜一般NULLNULL
张三2012-09很好很好较差NULLNULL
王五2012-10NULLNULLNULL很菜NULL
张三2012-10NULLNULLNULLNULL很菜
[解决办法]
好像用max函数也能实现,其他都不用变

读书人网 >SQL Server

热点推荐