Fungsi Lambda adalah fungsi anonim yang tidak memerlukan nama dan dapat digunakan sebagai parameter dalam fungsi atau metode lain. Topik ini menjelaskan batasan, sintaksis, serta contoh penggunaan Fungsi Lambda.
Batasan
Subquery, seperti
x->2+(SELECT3), tidak didukung.Operasi agregat, seperti
x -> max(y), tidak didukung.
Sintaksis
Sintaksis: Daftar parameter -> Ekspresi atau blok kode.
Daftar parameter: daftar parameter yang diterima oleh Fungsi Lambda. Daftar ini bisa kosong atau berisi satu atau lebih parameter.
->: pembatas yang digunakan untuk memisahkan daftar parameter dari ekspresi atau blok kode.
Contoh
Contoh 1: Menghitung nilai kuadrat dari kolom array.
SELECT numbers,transform(numbers, n -> n * n) as squared_numbers FROM ( VALUES (ARRAY(1, 2)),(ARRAY(3, 4)),(ARRAY(5, 6, 7)) ) AS t(numbers);Hasil berikut dikembalikan:
+------------+-----------------+ | numbers | squared_numbers | +------------+-----------------+ | [5,6,7] | [25,36,49] | | [3,4] | [9,16] | | [1,2] | [1,4] | +------------+-----------------+Contoh 2: Mengonversi array menjadi string.
SELECT transform(prices, n -> CAST(n AS STRING ) || '$') as price_tags FROM ( VALUES (ARRAY(100, 200)),(ARRAY(30, 4)) ) AS t(prices);Hasil berikut dikembalikan:
+------------+ | price_tags | +------------+ | ["30$","4$"] | | ["100$","200$"] | +------------+Contoh 3: Menghitung nilai dari fungsi linier.
SELECT xvalues, a, b, transform(xvalues, x -> a * x + b) as linear_function_values FROM ( VALUES (ARRAY(1, 2), 10, 5),(ARRAY(3, 4), 4, 2) ) AS t(xvalues, a, b);Hasil berikut dikembalikan:
+------------+------------+------------+------------------------+ | xvalues | a | b | linear_function_values | +------------+------------+------------+------------------------+ | [3,4] | 4 | 2 | [14,18] | | [1,2] | 10 | 5 | [15,25] | +------------+------------+------------+------------------------+