Функция Oracle NVL

Funkcia Oracle Nvl



Нулевое значение — это поле, оставленное пустым или не имеющее присвоенного значения.

Значения NULL распространены в базах данных, особенно при импорте внешних данных. Поэтому, если столбец не содержит ограничения для предотвращения значений NULL, механизм базы данных, скорее всего, будет использовать значение NULL для отсутствующего значения.







Хотя значения NULL распространены, они могут привести к проблемам с базой данных, поскольку база данных не имеет значения для работы. Поэтому рекомендуется применять действия для обработки значений NULL в ваших запросах.



В этом посте мы узнаем, как преобразовать значения NULL в данной таблице, чтобы они содержали значение по умолчанию, которое с меньшей вероятностью вызовет ошибки операций в вашей базе данных.



Функция Oracle NVL

Как уже упоминалось, эта функция позволяет нам заменять значения NULL более значимыми значениями. Синтаксис функции представлен ниже:





НВЛ ( выражение1, выражение2 ) ;

Функция принимает два основных аргумента:

выражение1 и выражение2 – этот параметр определяет значение, которое будет проверяться на значения NULL. Если значение expr1 равно NULL, функция вернет значение expr2.



Оба выражения могут иметь одинаковые или разные типы данных. Если соответствующие типы данных отличаются, механизм базы данных может выполнить неявное преобразование, чтобы обеспечить совместимость с типами данных. Если невозможно преобразовать соответствующие типы данных, механизм базы данных выдаст ошибку.

Пример использования функции Oracle NVL()

Следующий пример демонстрирует базовое использование функции NVL():

Пример 1

Рассмотрим следующий пример:

Выбрать уровень ( 'Привет' , 'Мир' ) из двойного;

В предыдущем примере мы используем функцию NVL(), чтобы проверить, является ли строка «hello» значением NULL. Поскольку предоставленное значение не равно нулю, функция вернет строку «привет».

Пример 2

Рассмотрим второй пример, показанный ниже:

Выбрать уровень ( нулевой, 'Мир' ) из двойного;

В этом случае, поскольку первое выражение имеет значение NULL, запрос вернет вторую строку, как показано ниже:

Пример 3

Мы также можем использовать функцию NVL() для замены значений NULL в таблице базы данных. Рассмотрим таблицу сотрудников, показанную ниже:

Выбрать FIRST_NAME, LAST_NAME, EMAIL, SALARY, COMMISSION_PCT от EMPLOYEES emp;

Результирующая таблица:

Как мы видим, столбец Commission_pct содержит значения NULL. Мы можем создать запрос для замены значений NULL из столбца Commission_pct на 0, как показано в примере ниже:

Выбрать FIRST_NAME, LAST_NAME, EMAIL, SALARY, nvl ( КОМИССИЯ_PCT, 0 )
от СОТРУДНИКОВ эмп;

В предыдущем примере запроса мы используем функцию NVL() для проверки значения в столбце Commission_pct на наличие NULL. Если есть значение NULL, мы возвращаем 0. В противном случае мы возвращаем исходное значение.

Это должно позволить нам заменить значения NULL в столбце на 0, как показано в результирующей таблице ниже:

Мы можем использовать это с оператором UPDATE или сохранить полученное значение в виде таблицы.

Заключение

В этом руководстве вы узнали, как использовать функцию Oracle NVL() для замены значений NULL значениями по умолчанию. Следует иметь в виду, что хотя функция NVL() очень похожа на функцию COALESCE(), функция NVL() может возвращать только одно значение. В то же время функция Coalesce() может возвращать несколько значений.

Если вы ищете функцию, которая может принимать более двух аргументов без использования функции объединение(), рассмотрите функцию NVL2().