首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

sqlserver 语句,该如何处理

2012-04-19 
sqlserver 语句我现在有一个表idnamescorekemu1张三100语文1张三 40数学2张张20英语3 李斯60语文我要的效

sqlserver 语句
我现在有一个表
id name score kemu
1 张三 100 语文
1 张三 40 数学
2 张张 20 英语
3 李斯 60 语文

我要的效果是 
id name 语文 数学 英语
1 张三 100 40  
2 张张 20
3 李斯 60


写出语句或思路,谢谢了

[解决办法]
行列转换
http://topic.csdn.net/u/20080614/17/22e73f33-f071-46dc-b9bf-321204b1656f.html?33238

SQL code
if not object_id('Class') is null    drop table ClassGoCreate table Class([Student] nvarchar(2),[Course] nvarchar(2),[Score] int)Insert Classselect N'张三',N'语文',78 union allselect N'张三',N'数学',87 union allselect N'张三',N'英语',82 union allselect N'张三',N'物理',90 union allselect N'李四',N'语文',65 union allselect N'李四',N'数学',77 union allselect N'李四',N'英语',65 union allselect N'李四',N'物理',85 Go--2000方法:动态:declare @s nvarchar(4000)set @s=''Select     @s=@s+','+quotename([Course])+'=max(case when [Course]='+quotename([Course],'''')+' then [Score] else 0 end)'from Class group by[Course]exec('select [Student]'+@s+' from Class group by [Student]')生成静态:select     [Student],    [数学]=max(case when [Course]='数学' then [Score] else 0 end),    [物理]=max(case when [Course]='物理' then [Score] else 0 end),    [英语]=max(case when [Course]='英语' then [Score] else 0 end),    [语文]=max(case when [Course]='语文' then [Score] else 0 end) from     Class group by [Student]GO动态:declare @s nvarchar(4000)Select     @s=isnull(@s+',','')+quotename([Course]) from Class group by[Course]exec('select * from Class pivot (max([Score]) for [Course] in('+@s+'))b')生成静态:select * from     Class pivot     (max([Score]) for [Course] in([数学],[物理],[英语],[语文]))b生成格式:/*Student 数学          物理          英语          语文------- ----------- ----------- ----------- -----------李四      77          85          65          65张三      87          90          82          78(2 行受影响)*/
[解决办法]
探讨
行列转换
http://topic.csdn.net/u/20080614/17/22e73f33-f071-46dc-b9bf-321204b1656f.html?33238

SQL code


if not object_id('Class') is null
drop table Class
Go
Create table Class([Student] nva……

热点排行