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, ataunull
.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 saatexpr
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.