Array
PostgreSQL
UNNEST
Mengekspansi array menjadi set of rows. Setiap elemen array menjadi satu baris. Dengan multiple arrays, ekspansi secara paralel.
Tipe hasil:
setof anyelementSyntax
SQL
UNNEST(array)
UNNEST(array1, array2, ...)Parameter
arrayanyarraywajib
Array yang akan diekspansi
Contoh Penggunaan
Ekspansi Array
SQL
1 SELECT UNNEST(ARRAY[a, b, c]);
Mengubah array menjadi rows.
Hasil
| unnest |
|---|
| a |
| b |
| c |
Dengan Ordinality
SQL
1 SELECT idx, element 2 FROM UNNEST(ARRAY[first, second, third]) 3 WITH ORDINALITY AS t(element, idx);
Menambahkan index ke setiap element.
Hasil
| idx | element |
|---|---|
| 1 | first |
| 2 | second |
| 3 | third |
Join Array Column
SQL
1 SELECT 2 p.name, 3 t.tag 4 FROM products p 5 CROSS JOIN UNNEST(p.tags) AS t(tag) 6 WHERE t.tag = featured;
Mencari produk dengan tag tertentu menggunakan UNNEST.
Multiple Arrays
SQL
1 SELECT * FROM UNNEST( 2 ARRAY[1, 2, 3], 3 ARRAY[a, b, c] 4 ) AS t(num, letter);
Ekspansi multiple arrays secara paralel.
Hasil
| num | letter |
|---|---|
| 1 | a |
| 2 | b |
| 3 | c |