Q: 
用SQL语句,把表中的数据由行变为列.

查询前:
ID 姓名 科目 分数
1 张三 语文 65
2 张三 数学 85
3 张三 外语 75
4 李四 语文 90
5 李四 数学 60
6 李四 外语 50


查询后:
姓名 语文 数学 外语
李四 90 60 50
张三 65 85 75


A:
1.先建表.
create table SCORETABLE
(
 ID int not null primary key,
 NAME varchar(50),
 SUBJECT varchar(50),
 SCORE int null
);


2.添加数据.
insert into scoretable(ID, NAME, SUBJECT, SCORE) values(1, '张三', '语文', 70);
insert into scoretable(ID, NAME, SUBJECT, SCORE) values(2, '张三', '数学', 85);
insert into scoretable(ID, NAME, SUBJECT, SCORE) values(3, '张三', '外语', 75);
insert into scoretable(ID, NAME, SUBJECT, SCORE) values(4, '李四', '语文', 90);
insert into scoretable(ID, NAME, SUBJECT, SCORE) values(5, '李四', '数学', 60);
insert into scoretable(ID, NAME, SUBJECT, SCORE) values(6, '李四', '外语', 50);


3.用SQL实现.
select NAME as '姓名',
    sum(case SUBJECT when '语文' then SCORE else 0 end) as '语文',
    sum(case SUBJECT when '数学' then SCORE else 0 end) as '数学',
    sum(case SUBJECT when '外语' then SCORE else 0 end) as '外语'
from SCORETABLE
group by NAME


这就做完了.主要就是这个SQL语句.其实很简单.