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