1. 程式人生 > >縱表與橫表互轉實例

縱表與橫表互轉實例

sum 代碼 sql help blog 所有 .cn light div

1.縱表轉橫表:

縱表結構:Table1

技術分享圖片

轉換後的橫表結構:

技術分享圖片

Sql示例代碼:

?
1 2 3 4 5 6 7 8 9 10 11 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示例代碼:

?
1 2 3 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 --結束

縱表與橫表互轉實例