O SQLite
ifnull()
A função permite substituir valores NULL por outro valor. Ele recebe dois argumentos e retorna uma cópia de seu primeiro argumento não NULL ou NULL se ambos os argumentos forem NULL.
O
ifnull()
função é equivalente a coalesce()
com dois argumentos. Exemplo simples
Aqui está um exemplo simples para demonstrar o conceito.
SELECT
ifnull(123, 0),
ifnull(NULL, 0);
Resultado:
ifnull(123, 0) ifnull(NULL, 0) -------------- --------------- 123 0
A segunda coluna era NULL e, portanto, 0 foi devolvido em seu lugar.
Exemplo de banco de dados
Este exemplo usa
ifnull()
em uma consulta de banco de dados. Isso demonstra como ifnull()
pode ser útil ao consultar dados que podem conter valores NULL. Tome a seguinte tabela como exemplo:
ProductId ProductName Price ---------- ------------- ---------- 1 Widget Holder 139.5 2 Widget Stick 89.75 3 Foo Cap 11.99 4 Free Widget 0.0 5 Free Foobar 0.0 6 Free Beer
A maioria dos produtos foi preenchida com preços, mas o preço da Cerveja Grátis é nulo.
Podemos alterar isso para um valor de nossa escolha.
SELECT
ProductName,
ifnull(Price, 0.0)
FROM Products;
Resultado:
ProductName ifnull(Price, 0.0) ------------- ------------------ Widget Holder 139.5 Widget Stick 89.75 Foo Cap 11.99 Free Widget 0.0 Free Foobar 0.0 Free Beer 0.0
Agora tem o mesmo preço dos outros produtos gratuitos.
O valor de substituição não precisa necessariamente ser um número. Você também pode substituí-lo por uma string.
SELECT
ProductName,
ifnull(Price, 'FREE!')
FROM Products;
Resultado:
ProductName ifnull(Price, 'FREE!') ------------- ---------------------- Widget Holder 139.5 Widget Stick 89.75 Foo Cap 11.99 Free Widget 0.0 Free Foobar 0.0 Free Beer FREE!
Quando ambos os argumentos são NULL
Se ambos os argumentos forem NULL, então NULL será retornado.
SELECT ifnull(NULL, NULL);
Resultado:
ifnull(NULL, NULL) ------------------