Naturalmente, potresti scrivere una funzione PL/pgSQL e interrogare la tabella del catalogo pg_attribute
te stesso. Ma è molto più semplice con uno dei seguenti:
JSON
La funzione row_to_json()
fornisce funzionalità che vanno a metà strada. Introdotto con Postgres 9.2 :
SELECT row_to_json(t, TRUE) FROM tbl t;
Non devi menzionare affatto i nomi delle colonne, la funzione li deriva dal tipo di tabella.
Ma avrai bisogno di json_each_text()
da Postgres 9.3 per andare fino in fondo:
SELECT json_each_text(row_to_json(t)) FROM tbl t;
Per ottenere un ordinamento come quello visualizzato:
SELECT (json_each_text(row_to_json(t))).*
FROM tbl t
ORDER BY 1, 2;
(Non è chiaro come vuoi ordinare esattamente.)
Non testato. SQLfiddle non fornisce ancora Postgres 9.3.
hstore
Tuttavia, puoi fare lo stesso con il modulo aggiuntivo hstore . Disponibile da 8.4 . Installalo una volta con:
CREATE EXTENSION hstore;
Dettagli:
Coppia valore chiave in PostgreSQL
Domanda:
SELECT (each(hstore(t))).*
FROM tbl t
ORDER BY 1,2;
Questo è tutto.
Di nuovo, niente SQLfiddle, dal momento che non è possibile installare moduli aggiuntivi lì.