Source
it_skills_ua | Функція NULLIF в Oracle SQLOracle SQL функція NULLIF порівнює expr1 та...
1 450 Views/Reach
2025-09-21 16:16
Message №974
Функція NULLIF в Oracle SQLOracle SQL функція NULLIF порівнює expr1 та expr2. Якщо expr1 і expr2 дорівнюють, функція NULLIF повертає NULL. Інакше вона повертає expr1.Синтаксис Oracle SQL функції NULLIF:NULLIF( expr1, expr2 )
Реальні кейси використання функції NULLIF:1. Уникнення помилки при діленні на нульSELECT order_id, discount, price / NULLIF(discount, 0) AS discount_ratioFROM orders;
Якщо discount = 0, замість помилки ORA-01476: divisor is equal to zero ми отримаємо NULL і помилки не буде2. Визначити, чи змінилось значенняSELECT product_id, NULLIF(new_price, old_price) AS price_changedFROM products;
Якщо ціна не змінилась → поверне NULL. Якщо ціна інша → поверне значення із new_price. Це зручно, щоб бачити тільки ті товари, де є зміна.3. Спрощення SQL синтаксису, щоб не використовувати CASEЗамість довгого коду:CASE WHEN status = 'active' THEN NULL ELSE statusEND
Можна написати простіше:NULLIF(status, 'active')
NULLIF — невелика, але дуже корисна функція, яка рятує від зайвого коду та помилок.#sql_code