sql >> Databasteknik >  >> RDS >> PostgreSQL

Extrahera nyckel, värde från json-objekt 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() är en återkommande funktion så du bör använda den som en radkälla. Utdata från funktionen är här förenad i sidled till tabellen q , vilket betyder att för varje rad i tabellen, varje (key, value) par från data kolumnen är endast kopplad till den raden så att förhållandet mellan den ursprungliga raden och raderna som bildas från json objektet bibehålls.

Tabellen q kan också vara en mycket komplicerad underfråga (eller en VALUES klausul, som i din fråga). I funktionen används lämplig kolumn från resultatet av utvärderingen av den underfrågan, så du använder endast en referens till aliaset för underfrågan och (alias för) kolumnen i underfrågan.



  1. Varför Kafka jdbc connect infoga data som BLOB istället för varchar

  2. AttributeError:modulen 'mysql' har inget attribut 'connector'

  3. Hur man dockar/avdockar frågefönster och andra flikar i SQL Server Management Studio (SSMS) - SQL Server/TSQL självstudie del 21

  4. Hur man kontrollerar arraynycklarna i php för att lagra arrayvärden i mysql