sql >> Database >  >> RDS >> SQLite

Hoe SQLite Ifnull() werkt

De SQLite ifnull() functie stelt u in staat om NULL-waarden te vervangen door een andere waarde.

Er zijn twee argumenten nodig en het retourneert een kopie van het eerste niet-NULL-argument, of NULL als beide argumenten NULL zijn.

De ifnull() functie is gelijk aan coalesce() met twee argumenten.

Eenvoudig voorbeeld

Hier is een eenvoudig voorbeeld om het concept te demonstreren.

SELECT 
  ifnull(123, 0),
  ifnull(NULL, 0);

Resultaat:

ifnull(123, 0)  ifnull(NULL, 0)
--------------  ---------------
123             0              

De tweede kolom was NULL en dus 0 werd in plaats daarvan teruggestuurd.

Databasevoorbeeld

Dit voorbeeld gebruikt ifnull() in een databasequery. Dit laat zien hoe ifnull() kan handig zijn bij het opvragen van gegevens die NULL-waarden kunnen bevatten.

Neem de volgende tabel als voorbeeld:

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                

De meeste producten zijn gevuld met prijzen, maar de prijs van Gratis bier is NULL.

We kunnen dit wijzigen in een waarde naar keuze.

SELECT 
  ProductName,
  ifnull(Price, 0.0)
FROM Products;

Resultaat:

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               

Nu heeft het dezelfde prijs als de andere gratis producten.

De vervangingswaarde hoeft niet per se een getal te zijn. Je kunt het ook vervangen door een tekenreeks.

SELECT 
  ProductName,
  ifnull(Price, 'FREE!')
FROM Products;

Resultaat:

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!                 

Als beide argumenten NULL zijn

Als beide argumenten NULL zijn, wordt NULL geretourneerd.

SELECT ifnull(NULL, NULL);

Resultaat:

ifnull(NULL, NULL)
------------------
                  

  1. SQL Server-transactielogboek - Deel 2

  2. Stale-statistieken controleren?

  3. 2 manieren om dubbele rijen in SQLite te verwijderen

  4. Hoe loop ik door een MySQL-query via PDO in PHP?