ماذا تفعل CASE عندما تكون نتيجة شرط WHEN غير معروفة؟

متقدمقراءة دقيقةآخر تحديث 3 أكتوبر 2026

SQL قواعد البيانات

الإجابة

يختار تعبير CASE فرع WHEN عندما تكون نتيجة شرطه صحيحة. إذا كانت النتيجة غير معروفة بسبب قيمة مفقودة، فلا يعد الفرع مطابقًا، وينتقل الاختيار إلى الفروع التالية. وإذا لم يتحقق أي شرط، يستخدم التعبير نتيجة ELSE عندما تكون موجودة. هذه القاعدة مهمة عند تصنيف بيانات لم تكتمل بعد.

مثلًا، لا يعني غياب درجة المهمة أن الدرجة أقل من حد النجاح أو أنها أعلى منه. كما أن نفي المقارنة لا يحول المعلومة المفقودة إلى حقيقة مؤكدة. لذلك قد يكون من الأنسب وضع تصنيف مستقل للبيانات التي لا تسمح بالحكم، بدل تسميتها ناجحة أو فاشلة دون أساس.

مثال

SELECT CASE
  WHEN NULL >= 60 THEN 'Pass'
  WHEN NOT (NULL >= 60) THEN 'Fail'
  ELSE 'Unknown'
END AS result;

لا يتحقق أي من الشرطين في المثال؛ فكلاهما غير معروف. يصل التعبير بالتالي إلى الفرع الاحتياطي الذي يصف غياب الحكم.

باختصار: فروع CASE تحتاج إلى شرط صحيح، ونفي مقارنة تحتوي على قيمة مفقودة لا يجعلها صحيحة تلقائيًا.

هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.

اختبر فهمك

ما قيمة result التي يعيدها الاستعلام التالي؟

CREATE TABLE tasks (score INT NULL);
INSERT INTO tasks (score) VALUES (NULL);
SELECT CASE
  WHEN score >= 60 THEN 'Pass'
  WHEN NOT (score >= 60) THEN 'Fail'
  ELSE 'Unknown'
END AS result
FROM tasks;