第一题:
就一张表
Name Subject Score
张三 数学 60
张三 语文 80
李四 语文 100
李四 数学 70
怎么能得到:
姓名 语文 数学
张三 80 60
李四 100 70
谢谢
第二题:一个数据库的访问量达到每天上百万,更改次数达到每天十万次,问怎么设计这个数据库....
谢谢
就一张表
Name Subject Score
张三 数学 60
张三 语文 80
李四 语文 100
李四 数学 70
怎么能得到:
姓名 语文 数学
张三 80 60
李四 100 70
谢谢
第二题:一个数据库的访问量达到每天上百万,更改次数达到每天十万次,问怎么设计这个数据库....
谢谢
第一题:
就一张表
Name Subject Score
张三 数学 60
张三 语文 80
李四 语文 100
李四 数学 70
怎么能得到:
姓名 语文 数学
张三 80 60
李四 100 70
谢谢
第二题:一个数据库的访问量达到每天上百万,更改次数达到每天十万次,问怎么设计这个数据库....*/
go
if OBJECT_ID('tbl')is not null
drop table tbl
go
create table tbl(
Name varchar(10),
[Subject] varchar(10),
Score int
)
go
insert tbl
select '张三','数学',60 union all
select '张三','语文',80 union all
select '李四','语文',100 union all
select '李四','数学',70
--问题一:
declare @str varchar(1000)
set @str=''
select @str=@str+','+[Subject]+
'=max(case when [Subject]='+QUOTENAME([Subject],'''')+' then Score else 0 end)'
from tbl
group by [Subject]
print @str
set @str='select Name as 姓名 '+@str+' from tbl group by Name'
print @str
exec(@str)
/*
姓名 数学 语文
李四 70 100
张三 60 80
*/
--问题二不会