数据库
首页 > 数据库> > MySQL中的行到列转换

MySQL中的行到列转换

作者:互联网

我在MySQL中有这个结果集:

ID          Type Email          Degignation  
1000000000  202 brijesh@abc.com Entrepreneur
1000000000  234 brijesh@abc.com Engineering,Development
1000000000  239 brijesh@abc.com CTO

我有很多这样的元组,而不仅仅是三个.
我希望Type为列,最后一列为它们的行值.如下

ID                202         234                     239        Email 
1000000000   Entrepreneur  Engineering,Development    CTO       brijesh@abc.com

解决方法:

这称为数据透视表.生产有点尴尬:

SELECT ID, 
 MAX(CASE Type WHEN 202 THEN Degignation END) AS `202`
 MAX(CASE Type WHEN 234 THEN Degignation END) AS `234`
 MAX(CASE Type WHEN 239 THEN Degignation END) AS `239`
 Email
FROM mytable
GROUP BY ID, Email

请注意,在编写查询之前,必须知道所有不同的Type值. SQL不允许结果集在发现表中的数据值时动态添加更多列.必须在查询准备时修复列.

标签:mysql,mysqli,pivot-table,mysql-workbench
来源: https://codeday.me/bug/20191008/1872446.html