Σταimiento NULL SQL
- Προηγούμενη σελίδα Nulls SQL
- Επόμενη σελίδα Τύποι δεδομένων SQL
Συνάρτηση SQL ISNULL(), NVL(), IFNULL() και COALESCE()
Δείτε την παρακάτω "Products" πίνακα:
P_Id | ProductName | UnitPrice | UnitsInStock | UnitsOnOrder |
---|---|---|---|---|
1 | computer | 699 | 25 | 15 |
2 | printer | 365 | 36 | |
3 | telephone | 280 | 159 | 57 |
Αν το "UnitsOnOrder" είναι διαλέξιμο και μπορεί να περιέχει τιμές NULL.
Εμείς χρησιμοποιούμε την ακόλουθη διαταγή SELECT:
SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder) FROM Προϊόντα
Στο παραπάνω παράδειγμα, αν η τιμή του "UnitsOnOrder" είναι NULL, το αποτέλεσμα είναι NULL.
Η συνάρτηση ISNULL() της Microsoft χρησιμοποιείται για να καθορίσει πώς θα χειριστούν τα NULL.
Οι συναρτήσεις NVL(), IFNULL() και COALESCE() μπορούν επίσης να πετύχουν τον ίδιο αποτέλεσμα.
Εδώ, θέλουμε να κάνουμε το NULL τιμή 0.
Στη συνέχεια, αν το "UnitsOnOrder" είναι NULL, αυτό δεν είναι ευνοϊκό για τον υπολογισμό, οπότε αν η τιμή είναι NULL, η συνάρτηση ISNULL() επιστρέφει 0.
SQL Server / MS Access
SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0)) FROM Προϊόντα
Oracle
Το Oracle δεν έχει τη συνάρτηση ISNULL(). Ωστόσο, μπορούμε να χρησιμοποιήσουμε τη συνάρτηση NVL() για να πετύχουμε τον ίδιο αποτέλεσμα:
SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0)) FROM Προϊόντα
MySQL
Το MySQL έχει και μια παρόμοια συνάρτηση με την ISNULL(). Ωστόσο, η λειτουργία της είναι λίγο διαφορετική από τη συνάρτηση ISNULL() της Microsoft.
Στο MySQL, μπορούμε να χρησιμοποιήσουμε τη συνάρτηση IFNULL(), όπως ακολουθεί:
SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0)) FROM Προϊόντα
Ή μπορούμε να χρησιμοποιήσουμε τη συνάρτηση COALESCE(), όπως ακολουθεί:
SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0)) FROM Προϊόντα
- Προηγούμενη σελίδα Nulls SQL
- Επόμενη σελίδα Τύποι δεδομένων SQL