Funzione SQL NULL
- Pagina precedente Null SQL
- Pagina successiva Tipi di dati SQL
Funzioni SQL ISNULL(), NVL(), IFNULL() e COALESCE()
Vedi la tabella "Products" seguente:
P_Id | ProductName | UnitPrice | UnitsInStock | UnitsOnOrder |
---|---|---|---|---|
1 | computer | 699 | 25 | 15 |
2 | printer | 365 | 36 | |
3 | telephone | 280 | 159 | 57 |
Se "UnitsOnOrder" è opzionale e può contenere valori NULL.
Utilizziamo l'istruzione SELECT seguente:
SELECT ProductName, UnitPrice * (UnitsInStock + UnitsOnOrder) FROM Products
Nell'esempio sopra, se il valore di "UnitsOnOrder" è NULL, il risultato è NULL.
La funzione ISNULL() di Microsoft viene utilizzata per definire come gestire i valori NULL.
Le funzioni NVL(), IFNULL() e COALESCE() possono anche ottenere lo stesso risultato.
Qui, speriamo che il valore NULL sia 0.
Di seguito, se "UnitsOnOrder" è NULL, non è vantaggioso per il calcolo, quindi se il valore è NULL, ISNULL() restituisce 0.
SQL Server / MS Access
SELECT ProductName, UnitPrice * (UnitsInStock + ISNULL(UnitsOnOrder, 0)) FROM Products
Oracle
Oracle non ha la funzione ISNULL(). Tuttavia, possiamo utilizzare la funzione NVL() per ottenere lo stesso risultato:
SELECT ProductName, UnitPrice * (UnitsInStock + NVL(UnitsOnOrder, 0)) FROM Products
MySQL
MySQL ha anche una funzione simile a ISNULL(). Tuttavia, il suo modo di funzionare è leggermente diverso dalla funzione ISNULL() di Microsoft.
In MySQL, possiamo usare la funzione IFNULL() come segue:
SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0)) FROM Products
O possiamo usare la funzione COALESCE() come segue:
SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0)) FROM Products
- Pagina precedente Null SQL
- Pagina successiva Tipi di dati SQL