纵表与横表互转的SQL
来源:互联网 发布:算法的配套网站 编辑:程序博客网 时间:2024/03/28 17:21
学习了一下纵表与横表互转的SQL,但是感觉效率比较低,不知道有没有更好的转换方法。
现把转换方法列举如下:
1、纵表转横表:
纵表结构 TableA
Name
Course
Grade
张三
语文
75
张三
数学
80
张三
英语
90
李四
语文
95
李四
数学
55
横表结构 TableB
Name
语文
数学
英语
张三
75
80
90
李四
95
55
0
方法一:
select Name,
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 TableA
group by Name
2、横表转纵表的"SQL"示例
横表结构: TEST_H2Z
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 TEST_H2Z UNION ALL
SELECT 姓名,'数学' AS 科目,数学 AS 成绩 FROM TEST_H2Z UNION ALL
SELECT 姓名,'英语' AS 科目,英语 AS 成绩 FROM TEST_H2Z
ORDER BY 姓名,科目 DESC;
- 纵表与横表互转的SQL
- 纵表与横表互转的SQL
- 纵表与横表互转的SQL
- 纵表与横表互转的SQL
- 纵表与横表互转的SQL
- 纵表与横表互转的sql
- sql 与表结构有关的
- sql与Excel间的“表”对话
- SQL中视图与表的区别
- SQL 与MYSQL与SQL SERVER与ORACLE的关系
- SQL Server 与 SQL Express 的异同
- SQL与T-SQL的区别
- java.sql.*与javax.sql.*的区别
- SQL与My SQL的区别
- 静态SQL与动态SQL的比较
- pl/sql与t-sql的区别
- sql/plus 与 sql/plus的区别
- java.sql.*与javax.sql.*的区别
- UDP组播代码设计问题
- 无名的忧伤——我们经历不起
- web services定义
- MySQL数据库管理常用命令
- javascript IP 正则表达
- 纵表与横表互转的SQL
- 嵌入式系统的优先级倒置
- 求最大公约数和最小公倍数
- 工作需要,编译windows版本的ffmpeg转换视频到xvid+mp3
- freemarker分析文档
- Windows 7 x64 Bug
- 更改MFC生成的程序的默认exe图标(转)
- 恶意PDF文件
- 会感染电脑的恶意Flash文件