Latest web development tutorials

função SQL ISNULL (), NVL (), IFNULL () e COALESCE ()

função SQL ISNULL (), NVL (), IFNULL () e COALESCE ()

Olhe para a tabela a seguir "Produtos":

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

Se "UnidadesPedidas" é opcional e pode conter valores nulos.

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

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

No exemplo acima, se houver valor "UnidadesPedidas" é nulo, então o resultado será nulo.

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

função NVL (), IFNULL () e coalescer () também pode alcançar os mesmos resultados.

Aqui, esperamos valor NULL é 0.

Agora, se "UnidadesPedidas" é NULL, ele não irá afetar o cálculo, porque se o valor for NULL, ISNULL () retorna 0:

SQL Server / MS Access

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

oráculo

A Oracle não IsNull () função. No entanto, pode-se utilizar a função NVL () para atingir o mesmo resultado:

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

MySQL

MySQL também tem função semelhante ISNULL (). Mas ele funciona com ISNULL da Microsoft () função é um pouco diferente.

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

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

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

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