行转列:
假如现在你有这样一张表,
id | name | course | score |
1 | 张三 | 数学 | 34 |
2 | 张三 | 语文 | 55 |
3 | 李四 | 数学 | 66 |
4 | 李四 | 语文 | 77 |
5 | 王五 | 数学 | 88 |
6 | 王五 | 语文 | 99 |
你想运用行转列将表格变成下面这样:
name | 数学 | 语文 |
张三 | 34 | 55 |
李四 | 66 | 77 |
王五 | 88 | 99 |
首先我们建立一个test1表并且插入所需的数据, 演示如下:
此时我们使用命令select * from 来查看下创建的表
接下来使用max是为了将无数据的点设为0,防止出现NULL 。演示如下:
列转行:
列转行其实就是将上面的表互转。
即将
id | name | 数学 | 语文 |
1 | 张三 | 34 | 55 |
2 | 李四 | 66 | 77 |
3 | 王五 | 88 | 99 |
转化为
name | course | score |
张三 | 数学 | 34 |
张三 | 语文 | 55 |
李四 | 数学 | 66 |
李四 | 语文 | 77 |
王五 | 数学 | 88 |
王五 | 语文 | 99 |
首先我们创建一个test2表并插入数据,演示如下:
查看一下test2表的结构
接下来我们进行列转行操作:
这样列转行就完成了。