SQLite ifnull()
функцията ви позволява да замените NULL стойности с друга стойност.
Той приема два аргумента и връща копие на първия си аргумент, различен от NULL, или NULL, ако и двата аргумента са NULL.
ifnull()
функцията е еквивалентна на coalesce()
с два аргумента.
Прост пример
Ето един прост пример за демонстриране на концепцията.
SELECT
ifnull(123, 0),
ifnull(NULL, 0);
Резултат:
ifnull(123, 0) ifnull(NULL, 0) -------------- --------------- 123 0
Втората колона беше NULL и така 0 вместо това беше върнато.
Пример за база данни
Този пример използва ifnull()
в заявка за база данни. Това демонстрира как ifnull()
може да бъде полезно при запитване на данни, които могат да съдържат NULL стойности.
Вземете следната таблица като пример:
ProductId ProductName Price ---------- ------------- ---------- 1 Widget Holder 139.5 2 Widget Stick 89.75 3 Foo Cap 11.99 4 Free Widget 0.0 5 Free Foobar 0.0 6 Free Beer
Повечето продукти са попълнени с цени, но цената на Безплатна бира е NULL.
Можем да променим това на стойност по наш избор.
SELECT
ProductName,
ifnull(Price, 0.0)
FROM Products;
Резултат:
ProductName ifnull(Price, 0.0) ------------- ------------------ Widget Holder 139.5 Widget Stick 89.75 Foo Cap 11.99 Free Widget 0.0 Free Foobar 0.0 Free Beer 0.0
Сега има същата цена като другите безплатни продукти.
Заместващата стойност не е задължително да е число. Можете също да го замените с низ.
SELECT
ProductName,
ifnull(Price, 'FREE!')
FROM Products;
Резултат:
ProductName ifnull(Price, 'FREE!') ------------- ---------------------- Widget Holder 139.5 Widget Stick 89.75 Foo Cap 11.99 Free Widget 0.0 Free Foobar 0.0 Free Beer FREE!
Когато и двата аргумента са NULL
Ако и двата аргумента са NULL, тогава се връща NULL.
SELECT ifnull(NULL, NULL);
Резултат:
ifnull(NULL, NULL) ------------------