首先建表和插入數據語句:
use Student
go
create table Score
(
學號 nvarchar(10),
課程 nvarchar(10),
成績 int
)
go
insert into Score values('0001','語文',87);
insert into Score values('0001','數學',79);
insert into Score values('0001','英語',95);
insert into Score values('0002','語文',69);
insert into Score values('0002','數學',84);
insert into Score values('0001','語文',95);
case when 用法一:
CASE 簡單表達式,它通過將表達式與一組簡單的表達式進行比較來確定結果。
select 學號,
sum(case when 課程='語文' then 成績 else 0 end ) as 語文,
sum(case when 課程='數學' then 成績 else 0 end ) as 數學,
sum(case when 課程='英語' then 成績 else 0 end ) as 英語
from Score
group by 學號
case when 用法二:
CASE 搜索表達式,它通過計算一組布爾表達式來確定結果。
select 學號,成績,
case 成績
when 87 then '良'
when 79 then '良'
when 95 then '優'
when 69 then '中'
else '差' end as test
from Score
上面為本人對case when的理解,如有錯誤希望批評指出,多謝!
注:每個case 對應一列數據