Ultimele tutoriale de dezvoltare web
 

SQL Funcții NULL


SQL ISNULL() , NVL() , IFNULL() și COALESCE() Funcții

Uită - te la următorul "Products" tabel:

p_id Numele produsului Preț unitar UnitsInStock UnitsOnOrder
1 Jarlsberg 10.45 16 15
2 mascarpone 32.56 23
3 Gorgonzola 15.67 9 20

Să presupunem că "UnitsOnOrder" coloana este opțională și poate conține valori NULL.

Avem următoarea declarație SELECT:

SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)
FROM Products

In exemplul de mai sus, în cazul în care oricare dintre "UnitsOnOrder" valorile sunt NULL, rezultatul este NULL.

Microsoft ISNULL() funcție este utilizată pentru a specifica modul în care dorim să tratăm valorile NULL.

NVL() , IFNULL() și COALESCE() funcții pot fi de asemenea folosite pentru a obține același rezultat.

În acest caz, dorim valori NULL să fie zero.

Mai jos, în cazul în care "UnitsOnOrder" este NULL nu va afecta calcul, deoarece ISNULL() returnează un zero în cazul în care valoarea este NULL:

MS Access

SELECT ProductName,UnitPrice*(UnitsInStock+IIF(ISNULL(UnitsOnOrder),0,UnitsOnOrder))
FROM Products

SQL Server

SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Products

Oracle

Oracle nu are un ISNULL() funcție. Cu toate acestea, putem folosi NVL() funcția pentru a obține același rezultat:

SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Products

MySQL

MySQL are un ISNULL() funcție. Cu toate acestea, funcționează un pic diferit de Microsoft ISNULL() funcție.

În MySQL putem folosi IFNULL() funcție, cum ar fi aceasta:

SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Products

sau putem folosi COALESCE() funcție, cum ar fi aceasta:

SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
FROM Products