SQL NULLФункции
Функции SQL ISNULL(), NVL(), IFNULL() и COALESCE()
Посмотрите на таблицу "Products" ниже:
| P_Id | ProductName | UnitPrice | UnitsInStock | UnitsOnOrder |
|---|---|---|---|---|
| 1 | Ярлсберг | 10.45 | 16 | 15 |
| 2 | Маскарпоне | 32.56 | 23 | |
| 3 | Горгонзола | 15.67 | 9 | 20 |
Предположим, "UnitsOnOrder" является необязательным и может содержать значения NULL.
Мы используем следующую инструкцию SELECT:
FROM Products
В примере выше, если любое значение "UnitsOnOrder" равно NULL, результат равен NULL.
Функция ISNULL() от Microsoft используется для указания, как обрабатывать значения NULL.
Функции NVL(), IFNULL() и COALESCE() также могут дать тот же результат.
Здесь мы хотим, чтобы значение NULL было 0.
Ниже, если "UnitsOnOrder" равно NULL, это не повлияет на вычисление, потому что если значение равно NULL, ISNULL() возвращает 0:
SQL Server / MS Access
FROM Products
Oracle
В Oracle нет функции ISNULL(). Однако мы можем использовать функцию NVL(), чтобы получить тот же результат:
FROM Products
MySQL
В MySQL также есть функция, похожая на ISNULL(). Однако она работает немного иначе, чем функция ISNULL() от Microsoft.
В MySQL мы можем использовать функцию IFNULL(), как показано ниже:
FROM Products
Или мы можем использовать функцию COALESCE(), как показано ниже:
FROM Products
Другие расширения