mysql列变行(多列变成多行)

时间:2022-03-16 01:54:53

我的定义:

列变行:将本来在多个列上的数据变成多个行上的数据(竖向为列,横向为行)

如图:

mysql列变行(多列变成多行)

显然对于a的所有成绩,分布在每个列中,如果我想变成如下形式:

mysql列变行(多列变成多行)

由于这里将本来是一行的不同列的数据变成了多行,我个人认为是列变行

sql如下:

(select id,name,'数学' as type,math as sore from student)
union
(select id,name,'英语' as type,english as sore from student)
union
(select id,name,'语文' as type,chinese as sore from student)

这里 union 表示变成多行的时候不可以重复,如果你的需求可以重复可以使用union all