Latest web development tutorials

Функция SQL ISNULL (), NVL (), IFNULL () и COALESCE ()

Функция SQL ISNULL (), NVL (), IFNULL () и COALESCE ()

Посмотрите на следующую таблицу "Продукты":

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 Jarlsberg 10.45 16 15
2 Mascarpone 32.56 23
3 Gorgonzola 15.67 9 20

Если "UnitsOnOrder" не является обязательным, и может содержать NULL значения.

Мы используем следующую ЗЕЬЕСТ:

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

В приведенном выше примере, если есть "UnitsOnOrder" значение NULL, то результат равен NULL.

функция от Microsoft ISNULL () используется для указания того, как обрабатывать NULL значения.

Функция NVL (), IFNULL () и COALESCE () также может достичь тех же результатов.

Здесь, мы надеемся, что NULL значение равно 0.

Теперь, если "UnitsOnOrder" является NULL, это не повлияет на расчет, потому что если значение равно NULL, ISNULL () возвращает 0:

SQL Server / MS Access

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

оракул

Oracle не IsNull функцию (). Тем не менее, мы можем использовать функцию NVL (), чтобы достичь того же результата:

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

MySQL

MySQL также имеет аналогичную функцию ISNULL (). Но он работает с ISNULL от Microsoft () функция немного отличается.

В MySQL, мы можем использовать функцию IFNULL () следующим образом:

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

Или же мы можем использовать функцию COALESCE () следующим образом:

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