NULL функції в SQL ISNULL(), NVL(), IFNULL() та COALESCE()

Матеріал представлений на сторінці взятий з ресурсу http://www.w3schools.com/sql/


(*Примітка: В різних системах керування Базами Даних MS Access, SQL Server, Oracle, MySQL необхідно перевіряти наявність та роботу даних функцій.*)

Давайте переглянемо таблицю "Products".

P_IdProductNameUnitPriceUnitsInStockUnitsOnOrder
1Jarlsberg10.451615
2Mascarpone32.5623
3Gorgonzola15.67920

Припустимо колонка UnitsOnOrder є необовязковою і може мати значення NULL.
Ми маємо слідуючий SQL-запит вибірки даних.

SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)
FROM Products

Якщо поле UnitsOnOrder має значення NULL, то результуюче значення також буде NULL
Функція ISNULL() використовується, якщо ми маємо бажання вилучити значення NULL.
Функції NVL(), IFNULL(), та COALESCE() також застосовуються для досягнення тих самих результатів запитів.
В даному випадку ми для NULL-значення встановлюємо значення 0.
Запишемо вираз для MySQL.

SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Products

Можливо застосувати також функцію COALESCE():

SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
FROM Products