U kunt natuurlijk een PL/pgSQL-functie schrijven en de catalogustabel pg_attribuut
jezelf. Maar het is zoveel gemakkelijker met een van de volgende:
JSON
De functie row_to_json ()
biedt functionaliteit die halverwege gaat. Geïntroduceerd met Postgres 9.2 :
SELECT row_to_json(t, TRUE) FROM tbl t;
Je hoeft de kolomnamen helemaal niet te noemen, de functie leidt ze af van het tabeltype.
Maar je hebt
SELECT json_each_text(row_to_json(t)) FROM tbl t;
Om een sorteervolgorde te krijgen zoals u laat zien:
SELECT (json_each_text(row_to_json(t))).*
FROM tbl t
ORDER BY 1, 2;
(Het is niet duidelijk hoe je precies wilt sorteren.)
Niet getest. SQLfiddle biedt nog geen Postgres 9.3.
hstore
U kunt echter hetzelfde doen met de aanvullende module hstore . Beschikbaar sinds 8.4 . Installeer het een keer met:
CREATE EXTENSION hstore;
Details:
Sleutelwaardepaar in PostgreSQL
Vraag:
SELECT (each(hstore(t))).*
FROM tbl t
ORDER BY 1,2;
Dat is alles.
Nogmaals, geen SQLfiddle, omdat je daar geen extra modules kunt installeren.