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語句.其實很簡單.
用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語句.其實很簡單.