В SQLite, ако трябва да замените NULL резултатите с текст като „N/A“, „None“ или дори текст „NULL“, можете да използвате едно от трите решения по-долу.
Примерни данни
Първо, ето пример за заявка, която връща някои NULL стойности.
SELECT
CustomerId,
Fax
FROM Customer
LIMIT 5;
Резултат:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 3 4 5 +420 2 4172 5
Обърнете внимание, че редове 2, 3 и 4 съдържат NULL стойности в Факс колона.
Можем да използваме методите по-долу, за да променим резултата, така че NULL колоните да показват „N/A“.
Функцията ifnull()
ifnull()
функцията приема два аргумента и връща първия, който не е NULL. Ако и двата аргумента са NULL, тогава той връща NULL.
И така, първият аргумент трябва да бъде стойността, която може или не може да бъде нула, а вторият аргумент трябва да е стойността, с която искате да замените всички NULL стойности.
Ето как можем да променим предишната заявка, за да показва „N/A“ навсякъде, където Факсът колоната е NULL.
SELECT
CustomerId,
ifnull(Fax, 'N/A') AS Fax
FROM Customer
LIMIT 5;
Резултат:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5
Функцията coalesce()
coalesce()
функцията е много подобна на ifnull()
функция. Разликата е, че coalesce()
приема повече от два аргумента. Той просто връща първия аргумент, различен от NULL.
Следователно можем да го използваме точно по същия начин, по който използваме ifnull()
като предоставите два аргумента.
SELECT
CustomerId,
coalesce(Fax, 'N/A') AS Fax
FROM Customer
LIMIT 5;
Резултат:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5
Командата .nullvalue Dot
Когато използвате интерфейса на командния ред на SQLite, можете да използвате .nullvalue
команда dot, за да се спасите от необходимостта да използвате една от предишните функции всеки път, когато правите заявка.
Когато използвате тази команда, вие предоставяте низ, който ще се използва за замяна на NULL стойности.
Пример:
.nullvalue N/A
Сега, когато стартирате заявка, която връща NULL стойности, низът „N/A“ ще замени тези NULL стойности.
SELECT
CustomerId,
Fax
FROM Customer
LIMIT 5;
Резултат:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5