К сожалению, MySQL
не имеет функции PIVOT
, которая в основном предназначена для того, что я пытаюсь сделать.
Мне нужны возвращаемые значения строк набора в качестве имени столбца с использованием хранимой процедуры ниже этой ссылки, кредиты @Akina
Сводные таблицы MySQL - строки в столбцы. Запрос
Но у меня ошибка при использовании
CALL PIVOT('sourcetable', 'contents', 'sUn', 'contents')
1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, на предмет правильного синтаксиса для использования рядом с '' )) parsed' в строке 16. Время: 0,586 с.
Это таблица MySql
+---------+----------+
| sUn | contents |
+---------+----------+
| Area NO | 1234567 |
| Zone S | 1234568 |
| Zone N | 1234560 |
| Zone I | 1234561 |
| Zone C | 1234562 |
| Zone G | 1234566 |
| Zone V | 1234564 |
| Zone B | 1234565 |
| Zone A | 1234569 |
| CR | 1234562 |
| ESA | 1234561 |
| EPI | 1234564 |
| SV | 1234563 |
| SA | 1234567 |
+---------+----------+
А это вид to_columnslist
SELECT DISTINCT
concat( '`', `t_table`.`sUn`, '` VARCHAR(255) path \'$."', `t_table`.`sUn`, '"\'' ) AS `line`
FROM `t_table`;
+--------------------------------------------+
| line |
+--------------------------------------------+
| `Area NO` VARCHAR(255) path '$."Area NO"' |
| `Zone S` VARCHAR(255) path '$."Zone S"' |
| `Zone N` VARCHAR(255) path '$."Zone N"' |
| `Zone I` VARCHAR(255) path '$."Zone I"' |
| `Zone C` VARCHAR(255) path '$."Zone C"' |
| `Zone G` VARCHAR(255) path '$."Zone G"' |
| `Zone V` VARCHAR(255) path '$."Zone V"' |
| `Zone B` VARCHAR(255) path '$."Zone B"' |
| `Zone A` VARCHAR(255) path '$."Zone A"' |
| `CR` VARCHAR(255) path '$."CR"' |
| `ESA` VARCHAR(255) path '$."ESA"' |
| `EPI` VARCHAR(255) path '$."EPI"' |
| `SV` VARCHAR(255) path '$."SV"' |
| `SA` VARCHAR(255) path '$."SA"' |
+--------------------------------------------+
14 rows in set (0.11 sec)
Пожалуйста, помогите мне сделать это.