Σταimiento NULL 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 Προϊόντα