I SQLite, hvis du har brug for at erstatte NULL-resultater med tekst som "N/A", "None" eller endda teksten "NULL", kan du bruge en af de tre løsninger nedenfor.
Eksempel på data
For det første er her et eksempel på en forespørgsel, der returnerer nogle NULL-værdier.
SELECT
CustomerId,
Fax
FROM Customer
LIMIT 5;
Resultat:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 3 4 5 +420 2 4172 5
Bemærk, at række 2, 3 og 4 indeholder NULL-værdier i Fax kolonne.
Vi kan bruge metoderne nedenfor til at ændre resultatet, så NULL-kolonnerne viser "N/A".
Funktionen ifnull()
ifnull()
funktion accepterer to argumenter og returnerer det første, der ikke er NULL. Hvis begge argumenter er NULL, returnerer det NULL.
Så det første argument skal være den værdi, der kan være nullbar eller ikke, og det andet argument skal være den værdi, som du vil erstatte eventuelle NULL-værdier med.
Sådan kan vi ændre den tidligere forespørgsel, så den viser "Ikke tilgængelig", hvor som helst Fax kolonnen er 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
Funktionen coalesce()
coalesce()
Funktionen ligner meget ifnull()
fungere. Forskellen er, at coalesce()
accepterer mere end to argumenter. Det returnerer simpelthen det første ikke-NULL-argument.
Derfor kan vi bruge det på nøjagtig samme måde, som vi bruger ifnull()
ved at give to argumenter.
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-kommandoen
Når du bruger SQLite-kommandolinjegrænsefladen, kan du bruge .nullvalue
dot-kommando for at spare dig selv for at skulle bruge en af de tidligere funktioner, hver gang du foretager en forespørgsel.
Når du bruger denne kommando, angiver du en streng, der vil blive brugt til at erstatte NULL-værdier.
Eksempel:
.nullvalue N/A
Nu, når du kører en forespørgsel, der returnerer NULL-værdier, vil strengen "N/A" erstatte disse NULL-værdier.
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