sql >> Database >  >> RDS >> SQLite

Hoe Coalesce() werkt in SQLite

In SQLite, de coalesce() functie retourneert een kopie van zijn eerste niet-NULL-argument, of NULL als alle argumenten NULL zijn.

Het is vergelijkbaar met de ifnull() functie, behalve dat coalesce() accepteert meer dan twee argumenten (ifnull() accepteert slechts twee argumenten).

Syntaxis

De syntaxis gaat als volgt:

coalesce(X,Y,...)

Dit betekent dat je twee of meer argumenten kunt geven. De functie retourneert dan de eerste die niet NULL is.

Voorbeeld

Hier is een voorbeeld om te demonstreren.

SELECT coalesce(NULL,1);

Resultaat:

1

Hier heb ik twee argumenten gegeven en coalesce() heeft de eerste niet-NULL-waarde geretourneerd, in dit geval 1 .

Meer voorbeelden

Hier zijn meer variaties om te laten zien hoe coalesce() behandelt elke zaak.

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

Resultaat:

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

Het is dus heel eenvoudig. Het retourneert gewoon het eerste argument dat niet NULL is, ongeacht hoeveel argumenten er zijn opgegeven.

Merk ook op dat als alle argumenten NULL zijn, het NULL teruggeeft.

Databasevoorbeeld

Hier is een voorbeeld van het gebruik van de coalesce() functie in een databasequery.

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

Resultaat:

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

Zo ziet het eruit zonder de coalesce() functie:

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

Resultaat:

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

Dus de coalesce() functie kan handig zijn om een ​​betekenisvolle string terug te geven in plaats van NULL.

Met drie argumenten

Hier is een voorbeeld van het toevoegen van een derde argument. Hierdoor kunnen we meerdere opties doorlopen voordat we bij NULL komen.

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

Resultaat:

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

  1. Is er een ECHT prestatieverschil tussen de primaire sleutels van INT en VARCHAR?

  2. Een SQL Server Monitoring Tool kiezen die aan uw behoeften voldoet

  3. ) Operator voor beginners

  4. MySQL COS() Functie – Retourneer de cosinus van een getal in MySQL