我的定义:

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

如图:


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

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

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

Logo

更多推荐