PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Извличане на ключ, стойност от json обекти в Postgres

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

Функцията json_each_text() е функция, връщаща набор, така че трябва да я използвате като източник на ред. Резултатът от функцията е тук съединен странично към таблицата q , което означава, че за всеки ред в таблицата, всеки (key, value) двойка от data колона се присъединява само към този ред, така че връзката между оригиналния ред и редовете, образувани от json обектът се поддържа.

Таблицата q може да бъде и много сложна подзаявка (или VALUES клауза, като във вашия въпрос). Във функцията се използва подходящата колона от резултата от оценяването на тази подзаявка, така че използвате само препратка към псевдонима на подзаявката и колоната (псевдоним на) в подзаявката.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Персонализирана агрегатна функция

  2. Как Sind() работи в PostgreSQL

  3. Как да изброите външни ключове на таблицата

  4. Как да проверя дали услуга, чието име не знам, работи на Ubuntu

  5. Масивни вложки с pg-обещание