Conditional
DuckDB
NVL
Mengembalikan nilai pertama jika tidak NULL, jika NULL mengembalikan nilai kedua. Alias Oracle-style dari IFNULL/COALESCE.
Tipe hasil:
Sama dengan tipe inputDiperbarui: 6 Jan 2026Syntax
SQL
NVL(expression, replacement)Parameter
expressionanywajib
Nilai yang akan dicek NULL-nya
replacementanywajib
Nilai pengganti jika expression NULL
Contoh Penggunaan
Replace NULL dengan Default
SQL
1 SELECT 2 customer_name, 3 NVL(phone, 'No Phone') as phone, 4 NVL(email, 'No Email') as email 5 FROM customers;
Mengganti NULL dengan teks default.
Hasil
| customer_name | phone | |
|---|---|---|
| Budi | 08123456789 | budi@email.com |
| Ani | No Phone | ani@email.com |
| Eko | 08234567890 | No Email |
Default Value untuk Perhitungan
SQL
1 SELECT 2 product_name, 3 price, 4 discount_percent, 5 price * (1 - NVL(discount_percent, 0) / 100) as final_price 6 FROM products;
Menggunakan 0 sebagai default jika discount NULL.
Hasil
| product_name | price | discount_percent | final_price |
|---|---|---|---|
| Laptop | 1500000 | 10 | 1350000 |
| Phone | 800000 | NULL | 800000 |
| Tablet | 500000 | 5 | 475000 |
Handling NULL in Aggregations
SQL
1 SELECT 2 department, 3 SUM(NVL(bonus, 0)) as total_bonus, 4 AVG(NVL(bonus, 0)) as avg_bonus 5 FROM employees 6 GROUP BY department;
Memperlakukan NULL bonus sebagai 0 dalam agregasi.
Hasil
| department | total_bonus | avg_bonus |
|---|---|---|
| IT | 15000000 | 3000000 |
| Sales | 25000000 | 5000000 |
| HR | 5000000 | 2500000 |