sql >> Databáze >  >> RDS >> SQLite

Jak funguje SQLite Ifnull()

SQLite ifnull() funkce umožňuje nahradit hodnoty NULL jinou hodnotou.

Trvá dva argumenty a vrací kopii svého prvního argumentu, který není NULL, nebo NULL, pokud jsou oba argumenty NULL.

ifnull() funkce je ekvivalentní funkci coalesce() se dvěma argumenty.

Jednoduchý příklad

Zde je jednoduchý příklad pro demonstraci konceptu.

SELECT 
  ifnull(123, 0),
  ifnull(NULL, 0);

Výsledek:

ifnull(123, 0)  ifnull(NULL, 0)
--------------  ---------------
123             0              

Druhý sloupec byl NULL a tedy 0 místo toho bylo vráceno.

Příklad databáze

Tento příklad používá ifnull() v databázovém dotazu. To ukazuje, jak ifnull() může být užitečné při dotazování na data, která mohou obsahovat hodnoty NULL.

Vezměte si následující tabulku jako příklad:

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                

U většiny produktů byly uvedeny ceny, ale cena Piva zdarma je NULL.

Můžeme to změnit na hodnotu dle našeho výběru.

SELECT 
  ProductName,
  ifnull(Price, 0.0)
FROM Products;

Výsledek:

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               

Nyní má stejnou cenu jako ostatní bezplatné produkty.

Náhradní hodnota nemusí být nutně číslo. Můžete jej také nahradit řetězcem.

SELECT 
  ProductName,
  ifnull(Price, 'FREE!')
FROM Products;

Výsledek:

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!                 

Když jsou oba argumenty NULL

Pokud jsou oba argumenty NULL, je vrácena hodnota NULL.

SELECT ifnull(NULL, NULL);

Výsledek:

ifnull(NULL, NULL)
------------------
                  

  1. Funkce JSON_TABLE() v Oracle

  2. Jak mohu používat Tvůrce výrazů v Accessu 2016?

  3. Váš dokonalý průvodce SQL Join:INNER JOIN – Část 1

  4. Po instalaci na Mac resetujte kořenové heslo MySQL pomocí příkazu ALTER USER