Я хотел бы знать, есть ли способ сделать univot (превратить столбцы в строки) данные в PostgreSQL.Столбцы PostgreSQL для строк без объяснений, указывающих имена столбцов/столбцы
Например, если у меня есть таблица, как:
ID Name Age
1 Alice 16
2 Bob 21
3 Carl 18
Я хочу, чтобы получить результат, как
ID Column_Name Column_Value
1 Name Alice
1 Age 16
2 Name Bob
2 Age 21
3 Name Carl
3 Age 18
Я знаю, что я мог бы сделать это как (sql fiddle с данными, чтобы попробовать) :
select
U.ID,
unnest(array['Name', 'Age']) as Column_Name,
unnest(array[U.Name, U.Age::text]) as Column_Value
from Users as U
Но есть ли способ сделать это для всех столбцов таблицы без явно указать имена столбцов? Например, для SQL Server я знаю, по крайней мере, 2 способа сделать это - динамический SQL или повернуть данные в xml и проанализировать xml - SQL Server : Columns to Rows. Может быть, есть и xml трюк в PostgreSQL?
см это http://stackoverflow.com/questions/1128737/unpivot-and-postgresql это объяснить, как UNPIVOT с помощью UNION ALL –
Спасибо, но я не хочу явным образом указываю столбцы –