Conditional
DuckDB
NVL2
Mengembalikan value_if_not_null jika expression tidak NULL, jika NULL mengembalikan value_if_null. Lebih fleksibel dari NVL.
Tipe hasil:
Sama dengan tipe value parametersDiperbarui: 16 Mei 2026Syntax
SQL
NVL2(expression, value_if_not_null, value_if_null)Parameter
expressionanywajib
Nilai yang akan dicek NULL-nya
value_if_not_nullanywajib
Nilai yang dikembalikan jika expression TIDAK NULL
value_if_nullanywajib
Nilai yang dikembalikan jika expression NULL
Contoh Penggunaan
Status Berdasarkan NULL
SQL
1 SELECT 2 customer_name, 3 email, 4 NVL2(email, 'Has Email', 'No Email') as email_status 5 FROM customers;
Menentukan status berdasarkan ada tidaknya email.
Hasil
| customer_name | email_status | |
|---|---|---|
| Budi | budi@email.com | Has Email |
| Ani | NULL | No Email |
| Eko | eko@email.com | Has Email |
Conditional Commission
SQL
1 SELECT 2 salesperson, 3 manager_id, 4 NVL2(manager_id, 'Standard Rate', 'Manager Rate') as commission_type, 5 NVL2(manager_id, 0.05, 0.10) as commission_rate 6 FROM sales_team;
Manager (NULL manager_id) dapat rate berbeda.
Hasil
| salesperson | manager_id | commission_type | commission_rate |
|---|---|---|---|
| Budi | 1 | Standard Rate | 0.05 |
| Ani | 1 | Standard Rate | 0.05 |
| Eko | NULL | Manager Rate | 0.10 |
Display Value vs Calculation Value
SQL
1 SELECT 2 product_name, 3 discount_percent, 4 NVL2(discount_percent, 5 CONCAT(discount_percent::VARCHAR, '% OFF'), 6 'Regular Price' 7 ) as display_text 8 FROM products;
Menampilkan teks berbeda berdasarkan ada tidaknya discount.
Hasil
| product_name | discount_percent | display_text |
|---|---|---|
| Laptop | 10 | 10% OFF |
| Phone | NULL | Regular Price |
| Tablet | 5 | 5% OFF |
Pertanyaan Umum tentang NVL2
Apa itu fungsi NVL2 di DuckDB?
Mengembalikan value_if_not_null jika expression tidak NULL, jika NULL mengembalikan value_if_null. Lebih fleksibel dari NVL. Di DuckDB, fungsi NVL2 termasuk dalam kelompok fungsi yang sering digunakan untuk mengolah dan menganalisis data secara efisien.
Bagaimana cara menggunakan NVL2 di DuckDB?
Gunakan sintaks berikut: NVL2(expression, value_if_not_null, value_if_null). Pastikan argumen yang dimasukkan sudah sesuai dengan tipe data yang diharapkan.
Apa nilai yang dikembalikan oleh fungsi NVL2?
Fungsi NVL2 mengembalikan nilai bertipe Sama dengan tipe value parameters. Pastikan tipe data hasil sudah sesuai dengan kebutuhan query atau formula kamu. Jika input mengandung nilai NULL, perilaku fungsi dapat berbeda — selalu periksa dokumentasi untuk memastikan hasilnya sesuai ekspektasi.
Apa saja parameter fungsi NVL2?
Fungsi ini memiliki 3 parameter wajib. Parameter yang digunakan: expression (any, wajib): Nilai yang akan dicek NULL-nya; value_if_not_null (any, wajib): Nilai yang dikembalikan jika expression TIDAK NULL; value_if_null (any, wajib): Nilai yang dikembalikan jika expression NULL.