Oracle NVL - функция для работы с нулевыми значениями
Функция NVL в Oracle предназначена для замены NULL значений на другое значение в результирующем наборе данных. Она имеет следующий синтаксис: NVL(expr1, expr2). Если expr1 является NULL, то функция возвращает expr2, иначе возвращает expr1.
Давайте рассмотрим несколько примеров кода, чтобы лучше понять, как работает функция NVL.
Пример 1:
Предположим, у нас есть таблица Employees с колонками Employee_ID и Last_Name. В некоторых случаях значение колонки Last_Name может быть NULL. Чтобы заменить все NULL значения в колонке Last_Name на строку "Unknown", мы можем использовать функцию NVL.
SELECT Employee_ID, NVL(Last_Name, 'Unknown') AS Last_Name
FROM Employees;
В этом примере, если значение колонки Last_Name равно NULL, функция NVL заменит его на строку "Unknown". Иначе, значение колонки Last_Name останется без изменений.
Пример 2:
Допустим, у нас есть таблица Orders с колонками Order_ID и Order_Date. Колонка Order_Date может содержать NULL значения. Мы хотим заменить NULL значения в колонке Order_Date на текущую дату.
SELECT Order_ID, NVL(Order_Date, SYSDATE) AS Order_Date
FROM Orders;
В этом примере, если значение колонки Order_Date равно NULL, функция NVL заменит его на текущую дату, которую предоставляет функция SYSDATE. Иначе, значение колонки Order_Date останется без изменений.
Пример 3:
Предположим, у нас есть таблица Products с колонками Product_ID и Price. Колонка Price может содержать NULL значения. Мы хотим заменить NULL значения в колонке Price на 0.
SELECT Product_ID, NVL(Price, 0) AS Price
FROM Products;
В этом примере, если значение колонки Price равно NULL, функция NVL заменит его на 0. Иначе, значение колонки Price останется без изменений.
Таким образом, функция NVL позволяет заменять NULL значения на другие значения по вашему выбору. Она играет важную роль в обработке данных, позволяя избежать нежелательных ошибок или некорректных результатов в результирующем наборе данных.