1.縱表轉橫表:
縱表結構:Table1
轉換后的橫表結構:
Sql示例代碼:
select username, sum(case Course when '語文' then Grade else 0 end) as 語文, sum(case Course when '數學' then Grade else 0 end) as 數學, sum(case Course when '英語' then Grade else 0 end) as 英語 from Table1 group by username
2、橫表轉縱表:
橫表結構: TableA
ID 姓名 語文 數學 英語
1 張三 80 90 70
2 李四 90 85 95
3 王五 88 75 90
轉換后的縱表結構:
ID 姓名 科目 成績
1 張三 語文 80
2 張三 數學 90
3 張三 英語 70
4 李四 語文 90
5 李四 數學 80
6 李四 英語 99
7 王五 語文 85
8 王五 數學 96
9 王五 英語 88
SQL示例代碼:
SELECT 姓名,'語文' AS 科目,語文 AS 成績 FROM TableA UNION ALL SELECT 姓名,'數學' AS 科目,數學 AS 成績 FROM TableA UNION ALL SELECT 姓名,'英語' AS 科目,英語 AS 成績 FROM TableA ORDER BY 姓名,科目 DESC;
case 變量表達式 --對某個‘變量表達式’進行判斷
when 值 --當‘變量表達式’是某個‘值’時
then 返回值表達式 --返回‘返回值表達式’值
[when...
then...
.....] --可以進行多次判斷
[else 其他情況返回值表達式] --不符合所有when后面的就是其他情況了
end --結束