mysql

mysql如何实现列转行

小亿
110
2024-08-11 16:03:38
栏目: 云计算

在MySQL中实现列转行可以使用UNION ALL操作符来实现。以下是一个示例:

假设有一个表格students,包含以下5列:id, name, subject1, subject2, subject3,内容如下:

id name subject1 subject2 subject3
1 Alice Math English Science
2 Bob History Math English

要将这个表格的subject1, subject2, subject3列转换为行数据,可以使用以下SQL查询:

SELECT id, name, 'subject1' as subject_name, subject1 as subject_value FROM students
UNION ALL
SELECT id, name, 'subject2' as subject_name, subject2 as subject_value FROM students
UNION ALL
SELECT id, name, 'subject3' as subject_name, subject3 as subject_value FROM students

这个查询将原表格的每一行转换为三行,每一行包含id, name, subject_name, subject_value列,其中subject_name列表示原来的subject1, subject2, subject3列的名称,subject_value列表示对应的值。

执行以上SQL查询后,得到的结果如下:

id name subject_name subject_value
1 Alice subject1 Math
1 Alice subject2 English
1 Alice subject3 Science
2 Bob subject1 History
2 Bob subject2 Math
2 Bob subject3 English

0
看了该问题的人还看了