Oczywiście możesz napisać funkcję PL/pgSQL i wysłać zapytanie do tabeli katalogu pg_attribute
się. Ale jest to o wiele łatwiejsze dzięki jednej z następujących opcji:
JSON
Funkcja row_to_json()
zapewnia funkcjonalność, która idzie w połowie. Wprowadzony z Postgresem 9.2 :
SELECT row_to_json(t, TRUE) FROM tbl t;
Nie musisz w ogóle wymieniać nazw kolumn, funkcja wywodzi je z typu tabeli.
Ale będziesz potrzebować json_each_text()
z Postgresa 9.3 przejść całą drogę:
SELECT json_each_text(row_to_json(t)) FROM tbl t;
Aby uzyskać porządek sortowania taki, jak wyświetlasz:
SELECT (json_each_text(row_to_json(t))).*
FROM tbl t
ORDER BY 1, 2;
(Nie jest jasne, jak dokładnie chcesz sortować.)
Nieprzetestowane. SQLfiddle nie zapewnia jeszcze Postgres 9.3.
sklep
Możesz jednak zrobić to samo z dodatkowym modułem sklep . Dostępne od 8.4 . Zainstaluj go raz za pomocą:
CREATE EXTENSION hstore;
Szczegóły:
Para klucz-wartość w PostgreSQL
Zapytanie:
SELECT (each(hstore(t))).*
FROM tbl t
ORDER BY 1,2;
To wszystko.
Ponownie nie ma SQLfiddle, ponieważ nie można tam zainstalować dodatkowych modułów.