1. 程式人生 > >sql server縱表變橫表

sql server縱表變橫表

例子一
1.建立檢視儲存複雜的select語句
create view Student_Score
as
select stu.sName,sub.sTitle,score.scoreValue
from ScoreInfo score
inner join SubjectInfo sub on sub.sId=score.subId
inner join StudentInfo stu on stu.sId=score.stuId
2.縱表變橫表
select sName 姓名,
–如果當前的STitle的值是"語文",則輸出ScoreValue
max(case sTitle when ‘語文’ then scoreValue end) 語文,
min(case when sTitle=‘數學’ then scoreValue end) 數學,
sum(case sTitle when ‘英語’ then scoreValue end) 英語
from Student_Score
group by sName–不加這個一個人會出現多次
例子二
–班級 男生 女生
–青龍 1 2
1.建立檢視儲存複雜語句
create view Student_Class_Gender
as
select cTitle,sGender,COUNT(*) as count1
from StudentInfo stu
inner join ClassInfo class on stu.cid=class.cId
group by cTitle,sGender
–cTitle,sGender,count1
–青龍 男 2

2.縱表變橫表
select cTitle,
max(case sGender when 1 then count1 else 0 end) 男,
max(case when sGender=0 then count1 else 0 end) 女
from Student_Class_Gender
group by cTitle