declare @t table
(StudentName nvarchar(20),
Subject nvarchar(20),
Score int)
Insert into @t (StudentName,Subject,Score) values ( '學生A', '中文', 80 );
Insert into @t (StudentName,Subject,Score) values ( '學生A', '數學', 78 );
Insert into @t (StudentName,Subject,Score) values ( '學生A', '英語', 92 );
Insert into @t (StudentName,Subject,Score) values ( '學生B', '中文', 89 );
Insert into @t (StudentName,Subject,Score) values ( '學生B', '數學', 87 );
Insert into @t (StudentName,Subject,Score) values ( '學生B', '英語', 75 );
Insert into @t (StudentName,Subject,Score) values ( '學生C', '中文', 92 );
Insert into @t (StudentName,Subject,Score) values ( '學生C', '數學', 74 );
Insert into @t (StudentName,Subject,Score) values ( '學生C', '英語', 65 );
Insert into @t (StudentName,Subject,Score) values ( '學生D', '中文', 79 );
Insert into @t (StudentName,Subject,Score) values ( '學生D', '數學', 83 );
Insert into @t (StudentName,Subject,Score) values ( '學生D', '英語', 81 );
Insert into @t (StudentName,Subject,Score) values ( '學生E', '中文', 73 );
Insert into @t (StudentName,Subject,Score) values ( '學生E', '數學', 84 );
Insert into @t (StudentName,Subject,Score) values ( '學生E', '英語', 93 );
Insert into @t (StudentName,Subject,Score) values ( '學生F', '中文', 79 );
Insert into @t (StudentName,Subject,Score) values ( '學生F', '數學', 86 );
Insert into @t (StudentName,Subject,Score) values ( '學生F', '英語', 84 );
select StudentName,
sum(case when Subject = N'中文' then Score else 0 end) Chinese,
sum(case when Subject = N'數學' then Score else 0 end) Math,
sum(case when Subject = N'英語' then Score else 0 end) Engilsh
from @t
group by StudentName