主题:[讨论]请教SQL查询
秋叶言
[专家分:0] 发布于 2008-01-13 00:26:00
请教大家
设有这样一个表:
姓名 性别 任课
张三 男 英语
张三 男 语文
张三 男 数学
李四 男 体育
李四 男 音乐
如何写sql得到这样的一个查询结果
张三 男 英语 语文 数学
李四 男 体育 音乐
注:这个查询结果是批量数据的结果,不是某一条的查询结果
回复列表 (共4个回复)
沙发
tbgdwj [专家分:0] 发布于 2008-03-13 15:27:00
可以写临时表,得到这个结果.
板凳
linjipeng0 [专家分:220] 发布于 2008-04-30 11:45:00
select aa,bb,[任课]=[数学]+' '+[体育]+' '+[音乐]+' '+[英语]+' '+[语文]+' ' from (select aa,bb,[数学]=max(case cc when '数学' then cc else '' end),[体育]=max(case cc when '体育' then cc else '' end),[音乐]=max(case cc when '音乐' then cc else '' end),[英语]=max(case cc when '英语' then cc else '' end),[语文]=max(case cc when '语文' then cc else '' end) from a group by aa,bb) as g
3 楼
fangrq [专家分:0] 发布于 2008-05-13 03:46:00
看了头晕晕,能不能详细点
4 楼
linjipeng0 [专家分:220] 发布于 2008-05-19 21:31:00
就是利用case 语句 实现交叉表,然后再在最外层用select 投影出来!
我来回复