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

Как да конвертирате postgresql 9.4 jsonb в обект без език на функция/сървър

Използвайте jsonb_populate_record() (или json_populate_record() за json ) с добре познат тип ред като цел. Можете да използвате временна таблица, за да регистрирате тип за ad-hoc употреба (ако не можете да използвате съществуваща таблица или персонализиран съставен тип):

CREATE TEMP TABLE obj(a int, b int, c int, d int);

След това:

SELECT t.id, d.*
FROM   test t
     , jsonb_populate_record(null::obj, t.data) d;

Или използвайте jsonb_to_record() (или json_to_record() за json ) и осигурете списък с дефиниции на колони с извикването:

SELECT t.id, d.*
FROM   test t
     , jsonb_to_record(t.data) d(a int, b int, c int, d int);

Или извличане и кастиране на всяко поле индивидуално:

SELECT id, (data->>'a')::int AS a, (data->>'b')::int AS b
         , (data->>'c')::int AS c, (data->>'d')::int AS d
FROM   test;

И трите работят за json и jsonb подобни. Просто използвайте съответния вариант на функция.

Свързани:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. С Rails, как мога да направя заявка в db за обобщено число и групирано по седмица?

  2. Най-добра практика за създаване на SQL SELECT заявки при обработка на потенциални недефинирани стойности

  3. Как работят изгледите на PostgreSQL security_barrier?

  4. Има ли начин за предаване на параметри към необработена заявка на postgres в релси?

  5. Кумулативна (текуща) сума с django orm и postgresql