منشور

سلسلة دروس SQL| دالات NULL

هذه المقالة جزء من سلسلة دروس SQL، يمكنك الاطلاع على الفهرس

دالات NULL في SQL

دالات ()IFNULL(), ISNULL(), COALESCE(), و ()NVL في SQL

انظر إلى جدول “المنتجات” التالي:

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 Jarlsberg 10.45 16 15
2 Mascarpone 32.56 23  
3 Gorgonzola 15.67 9 20

افترض أن العمود “UnitsOnOrder” اختياري وقد يحتوي على قيم فارغة.

1
2
3
4
5
		SELECT ProductName, UnitPrice * (UnitsInStock + UnitsOnOrder)

		FROM Products; 

في المثال أعلاه، إذا كانت أي من قيم “UnitsOnOrder” فارغة، فستكون النتيجة فارغة.

حلول

MySQL

تتيح لك وظيفة ()MySQL IFNULL إرجاع قيمة بديلة إذا كان التعبير NULL:

1
2
3
4
5
		SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0))

		FROM Products;

أو يمكننا استخدام دالة ()COALESCE، كما يلي:

1
2
3
4
5
		SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))

		FROM Products;

SQL Server

تتيح لك وظيفة ()SQL Server ISNULL إرجاع قيمة بديلة عندما يكون التعبير NULL:

1
2
3
4
5
		SELECT ProductName, UnitPrice * (UnitsInStock + ISNULL(UnitsOnOrder, 0))

		FROM Products; 

MS Access

الدالة ()MS Access IsNull ترجع (TRUE (-1 إذا كان التعبير قيمة خالية، وإلا (FALSE (0:

1
2
3
4
5
		SELECT ProductName, UnitPrice * (UnitsInStock + IIF(IsNull(UnitsOnOrder), 0, UnitsOnOrder))

		FROM Products; 

Oracle

تحقق وظيفة ()Oracle NVL نفس النتيجة:

1
2
3
4
5
		SELECT ProductName, UnitPrice * (UnitsInStock + NVL(UnitsOnOrder, 0))

		FROM Products; 

التالي: الإجراءات المخزنة

هذا المنشور تحت ترخيص CC BY 4.0 بواسطة المؤلف.