W SQLite, jeśli chcesz zastąpić wyniki NULL tekstem, takim jak „N/A”, „Brak” lub nawet tekstem „NULL”, możesz użyć jednego z trzech poniższych rozwiązań.
Przykładowe dane
Po pierwsze, oto przykład zapytania, które zwraca niektóre wartości NULL.
SELECT
CustomerId,
Fax
FROM Customer
LIMIT 5;
Wynik:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 3 4 5 +420 2 4172 5
Zauważ, że wiersze 2, 3 i 4 zawierają wartości NULL w Faksie kolumna.
Możemy użyć poniższych metod, aby zmienić wynik, tak aby kolumny NULL wyświetlały „N/A”.
Funkcja ifnull()
ifnull()
funkcja przyjmuje dwa argumenty i zwraca pierwszy, który nie jest NULL. Jeśli oba argumenty są NULL, to zwraca NULL.
Tak więc pierwszy argument powinien być wartością, która może, ale nie musi być dopuszczalna, a drugi argument powinien być wartością, którą chcesz zastąpić wartości NULL.
Oto, jak możemy zmodyfikować poprzednie zapytanie, aby wyświetlało „Nie dotyczy” wszędzie tam, gdzie Faks kolumna ma wartość NULL.
SELECT
CustomerId,
ifnull(Fax, 'N/A') AS Fax
FROM Customer
LIMIT 5;
Wynik:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5
Funkcja koalescencji()
coalesce()
funkcja jest bardzo podobna do ifnull()
funkcjonować. Różnica polega na tym, że coalesce()
przyjmuje więcej niż dwa argumenty. Po prostu zwraca pierwszy argument inny niż NULL.
Dlatego możemy go używać w dokładnie taki sam sposób, w jaki używamy ifnull()
podając dwa argumenty.
SELECT
CustomerId,
coalesce(Fax, 'N/A') AS Fax
FROM Customer
LIMIT 5;
Wynik:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5
Polecenie kropki .nullvalue
Używając interfejsu wiersza poleceń SQLite, możesz użyć .nullvalue
polecenie kropki, aby uniknąć konieczności używania jednej z poprzednich funkcji za każdym razem, gdy wykonujesz zapytanie.
Używając tego polecenia, podajesz ciąg znaków, który zostanie użyty do zastąpienia wartości NULL.
Przykład:
.nullvalue N/A
Teraz za każdym razem, gdy uruchomisz zapytanie, które zwróci wartości NULL, ciąg „N/A” zastąpi te wartości NULL.
SELECT
CustomerId,
Fax
FROM Customer
LIMIT 5;
Wynik:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5