Utilizarea isnull, ifnull, nullif este următoarea:
Utilizarea isnull (expr):Dacă expr este nul, atunci isnull() returnează valoarea de 1, altfel returnează 0. mysql> select isnull(1+1); -> 0 mysql> select isnull(1/0); -> 1 Folosirea lui = pentru comparațiile cu valori nule este de obicei greșită.
Funcția isnull() împărtășește unele dintre aceleași caracteristici ca operatorul de comparație is null. Vezi nota despre este nul.
Utilizarea IFNULL(expr1,expr2):
Dacă expr1 nu este NULL, valoarea returnată a IFNULL() este expr1; În caz contrar, returnează o valoare de expr2. IFNULL() returnează fie un număr, fie un șir, în funcție de contextul în care este folosit.
mysql> SELECT IFNULL(1,0); -> 1 mysql> SELECTEAZĂ IFNULL(NULL,10); -> 10 mysql> SELECT IFNULL(1/0,10); -> 10 mysql> SELECT IFNULL(1/0,'da');
-> 'da'
Valoarea implicită a rezultatului pentru IFNULL(expr1,expr2) este mai "generică" dintre cele două expresii, în ordinea STRING, REAL sau ÎNTREG。 Să presupunem o situație în care un tabel bazat pe expresii, sau MySQL, trebuie să stocheze valoarea returnată a IFNULL() într-un tabel temporar din memoria internă: CREATE TABLE tmp SELECT IFNULL(1,'test') AS test; În acest exemplu, coloana de test este de tip CHAR(4).
Utilizarea NULLIF(expr1,expr2): Dacă expr1 = expr2 este adevărat, atunci valoarea returnată este NULL, altfel valoarea returnată este expr1. Aceasta este aceeași cu CASE WHEN expr1 = expr2 Atunci NULL ELSE explicație 1 END este la fel. mysql> SELECT NULLIF(1,1);
-> NULL mysql> SELECT NULLIF(1,2); -> 1 Dacă parametrii nu sunt egali, atunci MySQL primește valoarea expr1 de două ori.
|