Conditional

NVL

DuckDBDuckDB

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 2026

Syntax

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
1SELECT
2 customer_name,
3 NVL(phone, 'No Phone') as phone,
4 NVL(email, 'No Email') as email
5FROM customers;

Mengganti NULL dengan teks default.

Hasil
customer_namephoneemail
Budi08123456789budi@email.com
AniNo Phoneani@email.com
Eko08234567890No Email

Default Value untuk Perhitungan

SQL
1SELECT
2 product_name,
3 price,
4 discount_percent,
5 price * (1 - NVL(discount_percent, 0) / 100) as final_price
6FROM products;

Menggunakan 0 sebagai default jika discount NULL.

Hasil
product_namepricediscount_percentfinal_price
Laptop1500000101350000
Phone800000NULL800000
Tablet5000005475000

Handling NULL in Aggregations

SQL
1SELECT
2 department,
3 SUM(NVL(bonus, 0)) as total_bonus,
4 AVG(NVL(bonus, 0)) as avg_bonus
5FROM employees
6GROUP BY department;

Memperlakukan NULL bonus sebagai 0 dalam agregasi.

Hasil
departmenttotal_bonusavg_bonus
IT150000003000000
Sales250000005000000
HR50000002500000