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 Table1group 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 ALLSELECT 姓名,‘数学‘ AS 科目,数学 AS 成绩 FROM TableA UNION ALLSELECT 姓名,‘英语‘ AS 科目,英语 AS 成绩 FROM TableA ORDER BY 姓名,科目 DESC; |
case 变量表达式 --对某个‘变量表达式’进行判断
when 值 --当‘变量表达式’是某个‘值’时
then 返回值表达式 --返回‘返回值表达式’值
[when...
then...
.....] --可以进行多次判断
[else 其他情况返回值表达式] --不符合所有when后面的就是其他情况了
end --结束