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

Menggunakan Fungsi Postgres JSON pada kolom tabel

Ekspresi setelah select harus mengevaluasi ke nilai tunggal. Sejak jsonb_to_recordset mengembalikan satu set baris dan kolom, Anda tidak dapat menggunakannya di sana.

Solusinya adalah cross join lateral , yang memungkinkan Anda memperluas satu baris menjadi beberapa baris menggunakan fungsi. Itu memberi Anda satu baris yang select dapat bertindak. Misalnya:

select  *
from    journal j
cross join lateral
        jsonb_to_recordset(j.data#>'{context, data, files}') as d(id int, name text)
where   j.id = 'ap32bbofopvo7pjgo07g'

Perhatikan bahwa #>> operator mengembalikan jenis text , dan #> operator mengembalikan jenis jsonb . Sebagai jsonb_to_recordset mengharapkan jsonb sebagai parameter pertama saya menggunakan #> .

Lihat itu berfungsi di rextester.com



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Impor file XML ke PostgreSQL

  2. PostgreSQL:Bagaimana cara mengindeks semua kunci asing?

  3. Apakah tidak menggunakan NULL di PostgreSQL masih menggunakan bitmap NULL di header?

  4. Apakah mungkin untuk menambahkan string Anda sendiri ke Django SearchVectorField?

  5. Bagaimana Atan2d() Bekerja di PostgreSQL