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

Udpak nøgle, værdi fra json-objekter i Postgres

SELECT q.id, d.key, d.value
FROM q
JOIN json_each_text(q.data) d ON true
ORDER BY 1, 2;

Funktionen json_each_text() er en sæt returnerende funktion, så du bør bruge den som en rækkekilde. Outputtet af funktionen er her sammenføjet lateralt til tabellen q , hvilket betyder, at for hver række i tabellen, hver (key, value) par fra data kolonne er kun forbundet med denne række, så forholdet mellem den oprindelige række og rækkerne dannet fra json objekt vedligeholdes.

Tabellen q kan også være en meget kompliceret underforespørgsel (eller en VALUES klausul, som i dit spørgsmål). I funktionen bruges den relevante kolonne fra resultatet af evalueringen af ​​den underforespørgsel, så du bruger kun en reference til underforespørgslens alias og (alias for) kolonnen i underforespørgslen.



  1. Hvordan bruger jeg den aktuelle dato i en HQL-forespørgsel med en Oracle-database?

  2. Oracle.DataAccess mismatch fejl

  3. Begrænsning af upload af dokumenter

  4. MySQL-serveren løber tør for hukommelse eller starter ikke