Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Mysql中将行转换为列_Mysql - Fatal编程技术网

在Mysql中将行转换为列

在Mysql中将行转换为列,mysql,Mysql,虽然我需要将行转置为列,但如果它只是将行转置为列或将列转置为行,我就可以这样做 我的表格里有数据 Student|MONTH|Sub-1|Sub-2|Sub-3 Sunil |JAN | 46 |48 |55 Sunil |APR |33 |44 |55 Sunil |JULY |23 |42 |92 Sunil |OCT |30 |40 |50 Anil |JAN |22 |33 |44 Anil |JULY |13 |42

虽然我需要将行转置为列,但如果它只是将行转置为列或将列转置为行,我就可以这样做

我的表格里有数据

Student|MONTH|Sub-1|Sub-2|Sub-3
Sunil  |JAN  | 46  |48   |55
Sunil  |APR  |33   |44   |55
Sunil  |JULY |23   |42   |92
Sunil  |OCT  |30   |40   |50
Anil   |JAN  |22   |33   |44
Anil   |JULY |13   |42   |92
和期望输出

Student|Sub-1|Sub-2|Sub-3|Sub-1|Sub-2|Sub-3|Sub-1|Sub-2|Sub-3|Sub-1|Sub-2|Sub-3
--------------------------------------------------------------------------------------
Stu1   |6    |48   |55   |33   |44   |55   |23   |42   |92   |30   |40   |50
Stu2   |22   |33   |44   |     |     |     |13   |42   |92   |98

etc..
有人知道怎么做吗?非常感谢

您可以使用此解决方案(透视表)-


…为其他月份添加列。

可能重复:这是一个很好的解决方案,它帮助了我。非常感谢。当我有动态数据时,你能帮我解决这个问题吗?比如明天我可能会得到2月4日,晚些时候我可能会得到10月6日。。。。
SELECT
  Student,
  MAX(IF(MONTH = 'JAN', `Sub-1`, NULL)) `JAN-Sub-1`,
  MAX(IF(MONTH = 'JAN', `Sub-2`, NULL)) `JAN-Sub-2`,
  MAX(IF(MONTH = 'JAN', `Sub-3`, NULL)) `JAN-Sub-3`,
  MAX(IF(MONTH = 'FEB', `Sub-1`, NULL)) `FEB-Sub-1`,
  MAX(IF(MONTH = 'FEB', `Sub-2`, NULL)) `FEB-Sub-2`,
  MAX(IF(MONTH = 'FEB', `Sub-3`, NULL)) `FEB-Sub-3`
FROM
  trans
GROUP BY
  student