sql >> Database teknologi >  >> RDS >> PostgreSQL

Vælg kolonnenavn og værdi fra tabellen

Selvfølgelig kan du skrive en PL/pgSQL-funktion og forespørge i katalogtabellen pg_attribute dig selv. Men det er så meget nemmere med en af ​​følgende:

JSON

Funktionen row_to_json() giver funktionalitet, der går halvvejs. Introduceret med Postgres 9.2 :

SELECT row_to_json(t, TRUE) FROM tbl t;

Du behøver slet ikke at nævne kolonnenavnene, funktionen udleder dem fra tabeltypen.

->SQLfiddle-demo.

Men du skal bruge json_each_text() fra Postgres 9.3 at gå hele vejen:

SELECT json_each_text(row_to_json(t)) FROM tbl t;

Sådan får du en sorteringsrækkefølge, som du viser:

SELECT (json_each_text(row_to_json(t))).*
FROM   tbl t
ORDER  BY 1, 2;

(Det er uklart, hvordan du vil sortere præcist.)
Utestet. SQLfiddle leverer ikke Postgres 9.3 endnu.

hstore

Du kan dog gøre det samme med ekstra modul hstore . Tilgængelig siden 8.4 . Installer det én gang med:

CREATE EXTENSION hstore;

Detaljer:
Nøgleværdipar i PostgreSQL

Forespørgsel:

SELECT (each(hstore(t))).*
FROM   tbl t
ORDER  BY 1,2;

Det er alt.
Igen, ingen SQLfiddle, da man ikke kan installere yderligere moduler der.



  1. InnoDB-korruption i Xampp

  2. mysql FULLTEXT søg flere ord

  3. Effektiv overvågning af MySQL med SCUMM Dashboards:Første del

  4. Sådan indstilles TimeStamp med Timezone i Laravel 5 Migrate