SQLite
 sql >> база данни >  >> RDS >> SQLite

Как работи SQLite Ifnull().

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)
------------------
                  

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проблем със заявка за вмъкване в Sqlite ?( вмъкване на променлива)

  2. 11 начина за намиране на дублиращи се редове, докато игнорирате първичния ключ в SQLite

  3. Как да получите идентификатор от базата данни при щракване върху елемент за изглед на списък в android

  4. Как да възстановите базата данни на Sqlite след архивиране на Android

  5. Как работи SQLite Min().