需求:查詢 user.name,若為 NULL 則顯示提示文字,否則顯示原值。
SELECT NVL(name, '未填寫姓名') FROM users;
-- 或標準 SQL
SELECT COALESCE(name, '未填寫姓名') FROM users;
SELECT CASE WHEN name IS NULL THEN '未填寫姓名' ELSE name END FROM users;
SELECT DECODE(name, NULL, '未填寫姓名', name) FROM users;
若已嵌套多層函數,建議在最外層包裹 NVL 或 COALESCE,避免修改內層邏輯:
SELECT NVL(UPPER(TRIM(name)), '未填寫姓名') FROM users;
NVL 僅接受兩參數,COALESCE 支援多參數回傳第一個非 NULL 值,跨資料庫移植首選 COALESCE。