PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak uzyskać obiekt json jako kolumnę w postgresql?

Nie możesz tego zrobić „dynamicznie”. Musisz określić kolumny, które chcesz mieć:

select name, description, id, 
       data ->> 'tax' as tax,
       data ->> 'other_attribute' as other_attribute
from core;

Jeśli robisz to często, możesz umieścić to w widoku.

Inną opcją jest utworzenie w Postgresie typu obiektu, który reprezentuje atrybuty w Twoim JSON, np.

create type core_type as (id integer, tax numeric, price numeric, code varchar);

Następnie możesz rzutować JSON na ten typ, a odpowiednie atrybuty z JSON zostaną automatycznie przekonwertowane na kolumny:

Z powyższym typem i następującym JSON:{"id": "100", "tax": "4.5", "price": "10", "code": "YXCV"} możesz zrobić:

select id, (json_populate_record(null::core_type, data)).*
from core;

i wróci:

id | tax  | price | code
---+------+-------+-----
 1 | 4.50 |    10 | YXCV

Musisz jednak upewnić się, że każda wartość JSON może być rzutowane na typ odpowiedniego pola obiektu.

Jeśli zmienisz typ obiektu, każde używające go zapytanie zostanie automatycznie zaktualizowane. Możesz więc zarządzać interesującymi Cię kolumnami za pomocą centralnej definicji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. dostosuj pager w psql

  2. QT5:Nie udało się załadować sterownika psql w systemie Windows

  3. pgAdmin Alternatywy — GUI do zarządzania bazą danych PostgreSQL ClusterControl

  4. Jak zredukować wiersze wynikowe zapytania SQL w pełnym zakresie?

  5. Jak porównać dwie tablice i wybrać tylko niepasujące elementy W postgres