Função NULL SQL

Funções SQL ISNULL(), NVL(), IFNULL() e COALESCE()

Veja a tabela "Products" abaixo:

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 computer 699 25 15
2 printer 365 36  
3 telefone 280 159 57

Se "UnitsOnOrder" for opcional e puder conter valores NULL.

Nós usamos a seguinte declaração SELECT:

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

No exemplo acima, se o valor de "UnitsOnOrder" for NULL, o resultado será NULL.

A função ISNULL() da Microsoft é usada para especificar como lidar com valores NULL.

As funções NVL(), IFNULL() e COALESCE() também podem alcançar o mesmo resultado.

Aqui, esperamos que o valor NULL seja 0.

A seguir, se "UnitsOnOrder" for NULL, isso não é benéfico para o cálculo, então se o valor for NULL, o ISNULL() retorna 0.

SQL Server / MS Access

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

Oracle

O Oracle não possui a função ISNULL(). No entanto, podemos usar a função NVL() para alcançar o mesmo resultado:

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

MySQL

O MySQL também possui uma função semelhante a ISNULL(). No entanto, sua forma de funcionamento é um pouco diferente da função ISNULL() da Microsoft.

No MySQL, podemos usar a função IFNULL() assim:

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

Ou podemos usar a função COALESCE() assim:

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