sql >> Databasteknik >  >> RDS >> SQLite

3 sätt att ersätta NULL med "N/A" i SQLite

I SQLite, om du behöver ersätta NULL-resultat med text som "N/A", "None" eller till och med texten "NULL", kan du använda en av de tre lösningarna nedan.

Exempeldata

Först, här är ett exempel på en fråga som returnerar några NULL-värden.

SELECT 
  CustomerId, 
  Fax  
FROM Customer
LIMIT 5;

Resultat:

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

Observera att raderna 2, 3 och 4 innehåller NULL-värden i Fax kolumn.

Vi kan använda metoderna nedan för att ändra resultatet så att NULL-kolumnerna visar "N/A".

Funktionen ifnull()

ifnull() funktion accepterar två argument och returnerar det första som inte är NULL. Om båda argumenten är NULL, returnerar det NULL.

Så det första argumentet bör vara värdet som kan vara nullbart eller inte, och det andra argumentet bör vara värdet som du vill ersätta eventuella NULL-värden med.

Så här kan vi ändra den tidigare frågan så att den visar "N/A" varhelst Fax kolumnen är NULL.

SELECT 
  CustomerId, 
  ifnull(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

Koalesce()-funktionen

coalesce() funktionen är mycket lik ifnull() fungera. Skillnaden är att coalesce() accepterar mer än två argument. Det returnerar helt enkelt det första icke-NULL-argumentet.

Därför kan vi använda det på exakt samma sätt som vi använder ifnull() genom att tillhandahålla två argument.

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

.nullvalue Dot-kommandot

När du använder SQLites kommandoradsgränssnitt kan du använda .nullvalue dot-kommando för att rädda dig själv från att behöva använda någon av de tidigare funktionerna varje gång du gör en fråga.

När du använder det här kommandot anger du en sträng som kommer att användas för att ersätta NULL-värden.

Exempel:

.nullvalue N/A

Nu, när du kör en fråga som returnerar NULL-värden, kommer strängen "N/A" att ersätta dessa NULL-värden.

SELECT 
  CustomerId, 
  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


  1. Ändra primärnyckel

  2. SQL Server och Spectre/Meltdown Vulnerabilities

  3. Hur ser man CREATE VIEW-koden för en vy i PostgreSQL?

  4. Hur genererar man data i MySQL?