Função NULL SQL
- Página anterior Nulls do SQL
- Próxima página Tipo de Dados 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
- Página anterior Nulls do SQL
- Próxima página Tipo de Dados SQL