Учитывая таблицу, например:Соединить столбцы и строки
Таблица Person
:
id, name, last_name, age
1, joshua, smith, 33
2, melissa, fox, 65
3, james, bond, 31
...
я должен прочитать каждую строку из таблицы, получить текущую строку, CONCAT его имени столбца и значения, а затем , наконец, положить их в другую таблицу в виде новых строк. Например:
Колонка concat_row
(VARCHAR) в новой таблице:
"name: joshua, last_name: smith, age: 33"
"name: melissa, last_name: fox, age: 65"
"name: james, last_name: bond, age: 31"
...
Дело в том, что нужно использовать общий запрос, где я не должен знать, сколько столбцов есть или то, что их имена, потому что этот запрос будет использоваться с сотнями таблиц ... Поэтому было бы интересно изменить только имя таблицы для каждого случая.
Как правило, что-то вроде 'select * to newtable from yourtable' было бы достаточно. Однако, если вы не знаете столбцы и хотите объединить их в один столбец, вам нужно будет использовать 'dynamic sql' с некоторой функцией' concat' (в зависимости от вашей базы данных). – sgeddes
Если вы используете SQL Server, проверьте [FOR XML] (https://msdn.microsoft.com/en-AU/library/ms178107.aspx) – cha
Пометьте используемые dbms. Возможно, можно использовать некоторые функциональные возможности продукта. В противном случае динамический SQL - это мой номер один. – jarlh