NVL и NVL2 — это функции Oracle SQL для обработки NULL значений, но они отличаются гибкостью и количеством возможных результатов.
NVL принимает два аргумента и просто заменяет NULL значение на указанное:
NVL(expr, replacement)
replacement, если expr равен NULLexpr, если он не равен NULLNVL2 принимает три аргумента и возвращает разные значения в зависимости от того, является ли выражение NULL или нет:
NVL2(expr, not_null_value, null_value)
not_null_value, если expr не равен NULLnull_value, если expr равен NULLNVL | NVL2 | |
|---|---|---|
| Аргументы | 2 | 3 |
| Когда НЕ NULL | Возвращает исходное значение | Возвращает заданное значение |
| Когда NULL | Возвращает замену | Возвращает заданное значение |
NVL(salary, 0) -- Возвращает 0, если salary равен NULL
NVL2(salary, 'Active', 'Inactive') -- Возвращает 'Active', если salary НЕ равен NULL
Используй NVL для простой замены null-значений. Используй NVL2, когда нужен полный контроль над результатом в обоих случаях — NULL и не-NULL.
Функция NVL возвращает исходное значение выражения, когда оно не NULL, в то время как NVL2 возвращает пользовательское значение, указанное во втором аргументе, когда выражение не NULL.
Новый — ещё не проверен сообществом
Вы