sql >> Databasteknik >  >> RDS >> SQLite

Hur Coalesce() fungerar i SQLite

I SQLite, coalesce() funktion returnerar en kopia av dess första icke-NULL-argument, eller NULL om alla argument är NULL.

Det liknar ifnull() funktion, förutom att coalesce() accepterar mer än två argument (ifnull() accepterar bara två argument).

Syntax

Syntaxen ser ut så här:

coalesce(X,Y,...)

Vad detta betyder är att du kan ge två eller flera argument. Funktionen kommer då att returnera den första som inte är NULL.

Exempel

Här är ett exempel att visa.

SELECT coalesce(NULL,1);

Resultat:

1

Här gav jag två argument och coalesce() returnerade det första icke-NULL-värdet, vilket i det här fallet är 1 .

Fler exempel

Här är fler varianter för att visa hur coalesce() hanterar varje ärende.

.mode line
SELECT
  coalesce(NULL,NULL,1,2,3),
  coalesce(1,NULL,2,3),
  coalesce(NULL,3,2,1),
  coalesce(1,2,3,NULL),
  coalesce(NULL,NULL);

Resultat:

coalesce(NULL,NULL,1,2,3) = 1
     coalesce(1,NULL,2,3) = 1
     coalesce(NULL,3,2,1) = 3
     coalesce(1,2,3,NULL) = 1
      coalesce(NULL,NULL) = 

Så det är väldigt enkelt. Det returnerar helt enkelt det första argumentet som inte är NULL, oavsett hur många argument som tillhandahålls.

Lägg också märke till att om alla argument är NULL, så returnerar det NULL.

Databasexempel

Här är ett exempel på hur du använder coalesce() funktion i en databasfråga.

.mode column
SELECT 
  CustomerId, 
  coalesce(Fax, 'N/A') AS Fax
FROM Customer
LIMIT 5;

Resultat:

CustomerId  Fax          
----------  -------------
1           +55 (12) 3923
2           N/A          
3           N/A          
4           N/A          
5           +420 2 4172 5

Så här ser det ut utan att använda coalesce() funktion:

.mode column
SELECT 
  CustomerId, 
  Fax
FROM Customer
LIMIT 5;

Resultat:

CustomerId  Fax               
----------  ------------------
1           +55 (12) 3923-5566
2                             
3                             
4                             
5           +420 2 4172 5555  

coalesce() funktion kan vara användbar för att returnera en meningsfull sträng istället för NULL.

Med tre argument

Här är ett exempel på att lägga till ett tredje argument. Detta gör att vi kan gå igenom flera alternativ innan vi anländer till NULL.

SELECT 
  CustomerId, 
  coalesce(Fax, Email, 'N/A') AS "Fax/Email"
FROM Customer
LIMIT 5;

Resultat:

CustomerId  Fax/Email             
----------  ----------------------
1           +55 (12) 3923-5566    
2           [email protected] 
3           [email protected]   
4           [email protected] 
5           +420 2 4172 5555      

  1. SQL Server 2016:Skapa en tabell

  2. MySQL-replikering för hög tillgänglighet

  3. Android JDBC fungerar inte:ClassNotFoundException på drivrutinen

  4. Oracle PL/SQL:hur man får stackspår, paketnamn och procedurnamn