Uporaba isnull, ifnull, nullif je naslednja:
Uporaba isnull(expr):Če je expr null, potem isnull() vrne vrednost 1, sicer vrne 0. mysql> select isnull(1+1); -> 0 mysql> select isnull(1/0); -> 1 Uporaba = za primerjave ničelnih vrednosti je običajno napačna.
Funkcija isnull() deli nekatere iste značilnosti kot operator primerjave ničelne is. Glej opombo o je null.
Uporaba IFNULL (expr1,expr2):
Če expr1 ni NULL, je vrnjena vrednost IFNULL() expr1; V nasprotnem primeru vrne vrednost expr2. IFNULL() vrne bodisi številko bodisi niz, odvisno od konteksta, v katerem se uporablja.
mysql> SELECT IFNULL(1,0); -> 1 mysql> SELECT IFNULL(NULL,10); -> 10 mysql> SELECT IFNULL(1/0,10); -> 10 mysql> SELECT IFNULL(1/0,'da');
-> 'ja'
Privzeta vrednost rezultata za IFNULL(expr1,expr2) je bolj "generična" od obeh izrazov, v vrstnem redu STRING, REAL ali INTEGER。 Predpostavimo situacijo, ko mora tabela na osnovi izrazov ali MySQL shraniti povratno vrednost IFNULL() v začasno tabelo v notranjem pomnilniku: USTVARI TABELO tmp IZBERI IFNULL(1,'test') AS test; V tem primeru je testni stolpec tipa CHAR(4).
Uporaba NULLIF(expr1,expr2): Če je expr1 = expr2 je resnična, potem je vrnjena vrednost NULL, sicer je vrnjena vrednost expr1. To je enako kot PRIMER, KO je expr1 = expr2 POTEM NULL ELSE expr1 END je enak. mysql> SELECT NULLIF(1,1);
-> NULL mysql> SELECT NULLIF(1,2); -> 1 Če parametri niso enaki, MySQL dobi vrednost expr1 dvakrat.
|