دروس SQL

SQL الصفحة الرئيسية مقدمة SQL بناء جملة SQL حدد SQL حدد SQL مميزة SQL أين SQL و ، أو ، لا ترتيب SQL حسب إدراج SQL في قيم SQL الفارغة تحديث SQL حذف SQL حدد SQL الأعلى SQL Min و Max عدد SQL ، المتوسط ​​، المجموع SQL مثل SQL Wildcards SQL في SQL بين الأسماء المستعارة لـ SQL SQL ينضم انضمام SQL الداخلية انضمام SQL الأيسر SQL حق الانضمام SQL انضمام كامل الانضمام الذاتي SQL اتحاد SQL مجموعة SQL حسب SQL وجود SQL موجود SQL أي ، الكل SQL حدد Into إدراج SQL في التحديد حالة SQL وظائف SQL الفارغة إجراءات SQL المخزنة تعليقات SQL عوامل SQL

قاعدة بيانات SQL

إنشاء قاعدة بيانات SQL SQL Drop DB SQL النسخ الاحتياطي DB إنشاء جدول SQL جدول إسقاط SQL جدول تعديل SQL قيود SQL SQL ليس لاغى SQL الفريدة مفتاح SQL الأساسي المفتاح الخارجي لـ SQL فحص SQL SQL الافتراضي فهرس SQL زيادة SQL التلقائية تواريخ SQL طرق عرض SQL حقن SQL استضافة SQL أنواع بيانات SQL

مراجع SQL

كلمات SQL وظائف MySQL وظائف خادم SQL وظائف MS Access المرجع السريع SQL

أمثلة SQL

أمثلة SQL اختبار SQL تمارين SQL شهادة SQL

وظائف SQL NULL


وظائف SQL IFNULL () و ISNULL () و COALESCE () و NVL ()

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

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

افترض أن العمود "UnitsOnOrder" اختياري ، وقد يحتوي على قيم NULL.

انظر إلى عبارة SELECT التالية:

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

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


حلول

MySQL

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

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

أو يمكننا استخدام الوظيفة ، مثل هذا: COALESCE()

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

خادم قاعدة البيانات

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

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

الوصول MS

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

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

وحي

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

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