我在 MySQL 中有这个结果集:
ID Type Email Degignation
1000000000 202 brijesh@abc.com Entrepreneur
1000000000 234 brijesh@abc.com Engineering,Development
1000000000 239 brijesh@abc.com CTO
我有很多这样的元组,而不仅仅是三个。 我希望类型成为列,最后一列成为它们的行值。就像下面这样
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 - MySQL 中的行到列转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47015692/