SQL: как скопировать одну строку в таблицу в новую таблицу с несколькими столбцами
Я использую postgresql.
У меня есть одна таблица только с одной строкой с такими столбцами, как:
Имя_1 | LastName_1 | Имя_2 | LastName_2 | Имя_3 | LastName_3 --------------------------------------------------------------- Том | Джонс | Джеймс | Sunn | Ли | арфист
И мне нужно скопировать его в новую таблицу с несколькими строками с двумя столбцами, например:
Имя | Фамилия ------------------ Том | Джонс Джеймс | кроталярия индийская Ли | арфист
Так что все из первой таблицы Name_1, Name_2 и Name_3 перейдут в новую таблицу под новым столбцом Name и то же самое для LastName.
Я нашел несколько вариантов, таких как PIVOT, но я не знаю, как их использовать.
1 ответ
Решение
Если ваши данные не большие, то самый простой способ union all
:
select name_1 as name, lastname_1 as lastname from t union all
select name_2 as name, lastname_2 as lastname from t union all
select name_3 as name, lastname_3 as lastname from t;
Существуют и другие подходы для больших данных или, если производительность является основным фактором.