SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Funktionsweise von Coalesce() in SQLite

In SQLite das coalesce() Die Funktion gibt eine Kopie ihres ersten Nicht-NULL-Arguments zurück, oder NULL, wenn alle Argumente NULL sind.

Es ähnelt dem ifnull() Funktion, außer dass coalesce() akzeptiert mehr als zwei Argumente (ifnull() akzeptiert nur zwei Argumente).

Syntax

Die Syntax lautet wie folgt:

coalesce(X,Y,...)

Das bedeutet, dass Sie zwei oder mehr Argumente angeben können. Die Funktion gibt dann die erste zurück, die nicht NULL ist.

Beispiel

Hier ist ein Beispiel zur Veranschaulichung.

SELECT coalesce(NULL,1);

Ergebnis:

1

Hier habe ich zwei Argumente und coalesce() bereitgestellt hat den ersten Nicht-NULL-Wert zurückgegeben, der in diesem Fall 1 ist .

Weitere Beispiele

Hier sind weitere Variationen, um zu demonstrieren, wie coalesce() behandelt jeden Fall.

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

Ergebnis:

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

Es ist also sehr einfach. Es gibt einfach das erste Argument zurück, das nicht NULL ist, unabhängig davon, wie viele Argumente angegeben werden.

Beachten Sie auch, dass NULL zurückgegeben wird, wenn alle Argumente NULL sind.

Datenbankbeispiel

Hier ist ein Beispiel für die Verwendung von coalesce() Funktion in einer Datenbankabfrage.

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

Ergebnis:

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

So sieht es ohne die Verwendung von coalesce() aus Funktion:

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

Ergebnis:

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

Also das coalesce() Funktion kann nützlich sein, um eine aussagekräftige Zeichenfolge anstelle von NULL zurückzugeben.

Mit drei Argumenten

Hier ist ein Beispiel für das Hinzufügen eines dritten Arguments. Dadurch können wir mehrere Optionen durchlaufen, bevor wir bei NULL ankommen.

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

Ergebnis:

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