SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Como o SQLite Ifnull() funciona


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)
------------------