Samozřejmě můžete napsat funkci PL/pgSQL a dotazovat se na tabulku katalogu pg_attribute
vy sám. Ale je to mnohem jednodušší s jedním z následujících:
JSON
Funkce row_to_json()
poskytuje funkce, které jsou poloviční. Představeno s Postgres 9.2 :
SELECT row_to_json(t, TRUE) FROM tbl t;
Názvy sloupců nemusíte uvádět vůbec, funkce je odvodí z typu tabulky.
Ale budete potřebovat json_each_text()
od Postgres 9.3 jít celou cestu:
SELECT json_each_text(row_to_json(t)) FROM tbl t;
Chcete-li získat pořadí řazení, jaké zobrazujete:
SELECT (json_each_text(row_to_json(t))).*
FROM tbl t
ORDER BY 1, 2;
(Není jasné, jak přesně chcete třídit.)
Netestováno. SQLfiddle zatím neposkytuje Postgres 9.3.
hstore
Totéž však můžete udělat s přídavným modulem hstore . Dostupné od 8.4 . Nainstalujte jej jednou pomocí:
CREATE EXTENSION hstore;
Podrobnosti:
Pár klíč – hodnota v PostgreSQL
Dotaz:
SELECT (each(hstore(t))).*
FROM tbl t
ORDER BY 1,2;
To je vše.
Opět žádné SQLfiddle, protože tam nelze instalovat další moduly.