PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara menggunakan postgresql apa saja dengan data jsonb

employees->'employment'->'benefits' adalah larik json, jadi Anda harus menghapus sarangnya untuk menggunakan elemennya di any perbandingan.Gunakan fungsi jsonb_array_elements_text() di gabung lateral :

select *
from 
    employees, 
    jsonb_array_elements_text(employees->'employment'->'benefits') benefits(benefit)
where
    benefit = any('{Insurance A, Insurance B}'::text[]);

Sintaks

from 
    employees, 
    jsonb_array_elements_text(employees->'employment'->'benefits')

setara dengan

from 
    employees, 
    lateral jsonb_array_elements_text(employees->'employment'->'benefits')

Kata lateral dapat dihilangkan. Untuk dokumentasi :

Lihat juga:Apa perbedaan antara LATERAL dan subquery di PostgreSQL?

Sintaksnya

from jsonb_array_elements_text(employees->'employment'->'benefits') benefits(benefit)

adalah bentuk aliasing, menurut dokumentasi



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ekstrak Bulan Dari Bidang Tanggal

  2. Driver JDBC Postgres:PSQLException:kesalahan sintaks pada atau di dekat RETURNING

  3. TemplateSyntaxError:Tertangkap ImportError saat merender:tidak dapat mengimpor utilitas nama

  4. Performa Pemindaian Heap Bitmap

  5. Pencocokan algoritma dalam SQL