JSON

JSONB_ARRAY_ELEMENTS

PostgreSQLPostgreSQL

Mengekspansi JSON array menjadi set of rows. Setiap elemen array menjadi satu baris. JSONB_ARRAY_ELEMENTS lebih efisien dibanding JSON_ARRAY_ELEMENTS.

Tipe hasil: setof jsonb

Syntax

SQL
JSONB_ARRAY_ELEMENTS(jsonb_array)
JSON_ARRAY_ELEMENTS(json_array)

Parameter

jsonb_arrayjsonbwajib

JSON array yang akan diekspansi

Contoh Penggunaan

Ekspansi Array Sederhana

SQL
1SELECT JSONB_ARRAY_ELEMENTS([1, 2, 3, "hello"]::jsonb);

Mengubah JSON array menjadi rows.

Hasil
jsonb_array_elements
1
2
3
"hello"

Ekspansi Array of Objects

SQL
1SELECT
2 elem->>name AS name,
3 elem->>price AS price
4FROM
5 products,
6 JSONB_ARRAY_ELEMENTS(items) AS elem;

Mengekstrak data dari array of objects dalam kolom JSON.

Hasil
nameprice
Laptop15000
Mouse500

Dengan Ordinality

SQL
1SELECT
2 idx,
3 elem
4FROM
5 JSONB_ARRAY_ELEMENTS(["a", "b", "c"]::jsonb)
6 WITH ORDINALITY AS t(elem, idx);

Menambahkan index/nomor urut untuk setiap elemen.