Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Fungsi JSON_ARRAYAGG() di Oracle

Di Oracle Database, JSON_ARRAYAGG() function membuat larik JSON dari kolom ekspresi SQL.

Sintaks

Sintaksnya seperti ini:

JSON_ARRAYAGG
  ( expr [ FORMAT JSON ]  [ order_by_clause ]
    [ JSON_on_null_clause ] [ JSON_agg_returning_clause ]
    [ STRICT ] 
  )

Dimana:

  • expr adalah ekspresi SQL apa pun yang mengevaluasi objek JSON, larik JSON, literal numerik, literal teks, atau null .
  • FORMAT JSON menunjukkan bahwa string input adalah JSON, dan karena itu tidak akan dikutip dalam output.
  • order_by_clause memungkinkan Anda untuk mengurutkan nilai JSON dalam larik JSON yang dikembalikan oleh pernyataan.
  • JSON_on_null_clause menentukan perilaku yang akan digunakan saat expr mengevaluasi ke null (yaitu menyertakan nilai null dalam output atau tidak).
  • JSON_agg_returning_clause menentukan tipe data string karakter yang dikembalikan oleh fungsi ini.
  • STRICT memeriksa apakah output dari fungsi pembuatan JSON adalah JSON yang benar atau tidak. Jika pemeriksaan gagal, kesalahan sintaks akan muncul.

Contoh

Misalkan kita menjalankan query SQL berikut:

SELECT region_name
FROM regions;

Dan itu mengembalikan output berikut:

              REGION_NAME 
_________________________ 
Europe                    
Americas                  
Asia                      
Middle East and Africa    

Jika kita ingin semua nilai tersebut menjadi elemen dalam larik JSON, kita bisa meneruskan nama kolom ke JSON_ARRAYAGG() fungsi.

Seperti ini:

SELECT JSON_ARRAYAGG(region_name)
FROM regions;

Hasil:

["Europe","Americas","Asia","Middle East and Africa"]

Pesan Berdasarkan Klausul

Berikut ini contoh penggunaan ORDER BY klausa dalam fungsi:

SELECT JSON_ARRAYAGG(
    region_name ORDER BY region_name DESC
    )
FROM regions;

Hasil:

["Middle East and Africa","Europe","Asia","Americas"]

Contoh tersebut mengurutkan elemen array dalam urutan menurun.

Ini dia dalam urutan menaik:

SELECT JSON_ARRAYAGG(
    region_name ORDER BY region_name ASC
    )
FROM regions;

Hasil:

["Americas","Asia","Europe","Middle East and Africa"]

Lihat dokumentasi Oracle untuk informasi lebih lanjut tentang fungsi ini.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle Entity Framework - Hasilkan Entitas Dari Tabel dalam Skema Berbeda

  2. Masalah dengan variabel pengikat Oracle tidak menggunakan indeks dengan benar

  3. Operator pivot Oracle

  4. pilih dari satu tabel, masukkan ke tabel lain kueri Oracle sql

  5. pesan kesalahan sqldeveloper:Adaptor jaringan tidak dapat membuat kesalahan koneksi