JSON
PostgreSQL
JSONB_ARRAY_ELEMENTS
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 jsonbSyntax
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
1 SELECT 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
1 SELECT 2 elem->>name AS name, 3 elem->>price AS price 4 FROM 5 products, 6 JSONB_ARRAY_ELEMENTS(items) AS elem;
Mengekstrak data dari array of objects dalam kolom JSON.
Hasil
| name | price |
|---|---|
| Laptop | 15000 |
| Mouse | 500 |
Dengan Ordinality
SQL
1 SELECT 2 idx, 3 elem 4 FROM 5 JSONB_ARRAY_ELEMENTS(["a", "b", "c"]::jsonb) 6 WITH ORDINALITY AS t(elem, idx);
Menambahkan index/nomor urut untuk setiap elemen.