让面试官颤抖,SQL面试题之行列转换

SQL语句
437
0
0
2022-04-29

SQL面试题之行列转换

在写SQL时,行转列是一个比较常见的问题,接下来我看一下 下面几种情况。

情况一,如何行转列

表结构如下:

CREATE TABLE tb(姓名 VARCHAR(10),课程 VARCHAR(10),分数 INT);

数据如下:

让面试官颤抖,SQL面试题之行列转换

希望转换成如下的格式:

让面试官颤抖,SQL面试题之行列转换

思考10S中,如果是你SQL怎么写......

看下我们的SQL:

让面试官颤抖,SQL面试题之行列转换

情况二,如何列转行

建表语句如下:

CREATE TABLE tb(姓名 VARCHAR(10),语文 INT,数学 INT,物理 INT)

数据如下:

让面试官颤抖,SQL面试题之行列转换

希望转换成如下的格式:

让面试官颤抖,SQL面试题之行列转换

看下我们的SQL:

让面试官颤抖,SQL面试题之行列转换

情况三,如何多行变一行?

我们的数据结构如下:

让面试官颤抖,SQL面试题之行列转换

我们希望将id相同的行合并,效果如下:

让面试官颤抖,SQL面试题之行列转换

看下我们的SQL:

让面试官颤抖,SQL面试题之行列转换

关于一列转多列,多列转一列比较简单,不多做介绍了。

让面试官颤抖,SQL面试题之行列转换