PIVOT行转列问题,高手进

xzq12345 2013-02-01 02:40:25
行转列怎么显示内容?而不是统计数量
比如说成绩表:姓名,考试月份,科目,成绩:
name month subject score
张三 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

=========================================================
name month 数学 语文 英语 物理 化学
李四 2012-09 NULL 34 45 NULL NULL
张三 2012-09 80 30 30 NULL NULL
王五 2012-10 NULL NULL NULL 30 NULL
张三 2012-10 NULL NULL NULL NULL 10
=========================================================
如果成绩是字符串呢,这个效果如何实现:
name month 数学 语文 英语 物理 化学
李四 2012-09 NULL 很菜 一般 NULL NULL
张三 2012-09 很好 很好 较差 NULL NULL
王五 2012-10 NULL NULL NULL 很菜 NULL
张三 2012-10 NULL NULL NULL NULL 很菜
...全文
341 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzq12345 2013-02-01
  • 打赏
  • 举报
回复
丢人,赶紧结贴
xzq12345 2013-02-01
  • 打赏
  • 举报
回复
引用 4 楼 sc273607742 的回复:
引用 2 楼 xzq12345 的回复:引用 1 楼 sc273607742 的回复: 好像用max函数也能实现,其他都不用变 我需要显示成绩,不是需要count()Max()P() 用max()也能实现...字符也能用max,min
是的,可以用,真是秀逗了我
  • 打赏
  • 举报
回复
(select [name],score=(case when score<35 then '很菜' when score<60 then '较差' when score<80 then '一般' else '较好' end),subject from tb)p PIVOT( max(score) for subject in ([数学],[语文],[英语],[物理],[化学])) as pvt
哥眼神纯洁不 2013-02-01
  • 打赏
  • 举报
回复
引用 2 楼 xzq12345 的回复:
引用 1 楼 sc273607742 的回复: 好像用max函数也能实现,其他都不用变 我需要显示成绩,不是需要count()Max()P()
用max()也能实现...字符也能用max,min
xzq12345 2013-02-01
  • 打赏
  • 举报
回复
引用 2 楼 xzq12345 的回复:
引用 1 楼 sc273607742 的回复:好像用max函数也能实现,其他都不用变 我需要显示成绩,不是需要count()Max()P()
name month subject score 张三 2012-09 数学 很好 张三 2012-09 语文 很好 张三 2012-09 英语 很好 李四 2012-09 英语 一般 李四 2012-09 语文 一般 张三 2012-10 化学 很菜 王五 2012-10 物理 很菜
xzq12345 2013-02-01
  • 打赏
  • 举报
回复
引用 1 楼 sc273607742 的回复:
好像用max函数也能实现,其他都不用变
我需要显示成绩,不是需要count()Max()P()
哥眼神纯洁不 2013-02-01
  • 打赏
  • 举报
回复
好像用max函数也能实现,其他都不用变

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧