mysql如何实现列转行

   2024-10-01 8140
核心提示:在MySQL中实现列转行可以使用UNION ALL操作符来实现。以下是一个示例:假设有一个表格students,包含以下5列:id, name, sub

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

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

idnamesubject1subject2subject3
1AliceMathEnglishScience
2BobHistoryMathEnglish

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

SELECT id, name, 'subject1' as subject_name, subject1 as subject_value FROM studentsUNION ALLSELECT id, name, 'subject2' as subject_name, subject2 as subject_value FROM studentsUNION ALLSELECT 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查询后,得到的结果如下:

idnamesubject_namesubject_value
1Alicesubject1Math
1Alicesubject2English
1Alicesubject3Science
2Bobsubject1History
2Bobsubject2Math
2Bobsubject3English

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号