SQL里如何把查询得到的内容作为属性名

来源:百度知道 编辑:UC知道 时间:2024/05/17 05:53:02
问大家一个高级的问题,我不知道怎么去搜这样的问题答案。
环境:SQL SEVER 2000

某个表的模式如下(*表示主键):
成绩表(*学号,*科目,成绩)
学生表(*学号,姓名……)
科目表(*科目号,科目名字……)

例如:
成绩表数据项
'3105006001','050101',81
'3105006001','050102',82
'3105006002','050101',71
'3105006002','050102',72
学生表数据项:
'3105006001','盖茨'
'3105006002','乔布斯'
科目表数据项:
'050101','数据库'
'050102','JAVA语言'

一个学号会有很多不同的科目,而且数目不固定。请问如何编写代码,创建一个视图,能够把科目名字作为属性名,对应成绩作为属性值?

希望得到的视图输出
学号, 姓名,数据库,JAVA语言
3105006001,盖茨 ,81, 82
3105006002,乔布斯,71, 72

这个玩意儿太难了,我整整弄了一个下午,而且还查了不少材料,现在基本完成楼主你要的功能了,表结构是参照楼主来的,改改字段名就能用。先把代码都拷过去,跑一下,就知道效果了。

if exists(select * from sysobjects where name='xs')
drop table xs
create table xs
(
id char(5) primary key not null,
xm varchar(10) not null
)
insert into xs values ('10001','张三')
insert into xs values ('10002','李四')
insert into xs values ('10003','一五')
insert into xs values ('10004','田七')

if exists (select * from sysobjects where name='km') drop table km
create table km
(
id char(3) primary key not null,
mc varchar(20) not null
)
go

insert into km values ('101','java')
insert into km values ('102','C#')
insert into km values ('103','sql')
insert into km values ('104','html')
insert into km values ('105',&#