sql >> Database teknologi >  >> RDS >> SQLite

Hvordan SQLite Ifnull() virker

SQLite ifnull() funktionen giver dig mulighed for at erstatte NULL-værdier med en anden værdi.

Det kræver to argumenter, og det returnerer en kopi af dets første ikke-NULL-argument, eller NULL, hvis begge argumenter er NULL.

ifnull() funktion svarer til coalesce() med to argumenter.

Simpelt eksempel

Her er et simpelt eksempel til at demonstrere konceptet.

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

Resultat:

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

Den anden kolonne var NULL og så 0 blev returneret i stedet.

Databaseeksempel

Dette eksempel bruger ifnull() i en databaseforespørgsel. Dette viser hvordan ifnull() kan være nyttigt, når du forespørger data, der kan indeholde NULL-værdier.

Tag følgende tabel som et eksempel:

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 fleste produkter er blevet udfyldt med priser, men prisen på Gratis øl er NULL.

Vi kan ændre dette til en værdi efter eget valg.

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

Resultat:

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 har den samme pris som de andre gratis produkter.

Erstatningsværdien behøver ikke nødvendigvis at være et tal. Du kan også erstatte den med en streng.

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

Resultat:

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!                 

Når begge argumenter er NULL

Hvis begge argumenter er NULL, returneres NULL.

SELECT ifnull(NULL, NULL);

Resultat:

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

  1. Inkrementel datamaskering og kortlægning:Registrering af ændringer og opdatering...

  2. Sammenligning af PHP-databaseabstraktionslag og CRUD-plugins

  3. Hvad er den mest anbefalede måde at gemme tid i PostgreSQL ved hjælp af Java?

  4. Java lagret procedure kalder i java program