يختار تعبير CASE فرع WHEN عندما تكون نتيجة شرطه صحيحة. إذا كانت النتيجة غير معروفة بسبب قيمة مفقودة، فلا يعد الفرع مطابقًا، وينتقل الاختيار إلى الفروع التالية. وإذا لم يتحقق أي شرط، يستخدم التعبير نتيجة ELSE عندما تكون موجودة. هذه القاعدة مهمة عند تصنيف بيانات لم تكتمل بعد.
مثلًا، لا يعني غياب درجة المهمة أن الدرجة أقل من حد النجاح أو أنها أعلى منه. كما أن نفي المقارنة لا يحول المعلومة المفقودة إلى حقيقة مؤكدة. لذلك قد يكون من الأنسب وضع تصنيف مستقل للبيانات التي لا تسمح بالحكم، بدل تسميتها ناجحة أو فاشلة دون أساس.
مثال
SELECT CASE
WHEN NULL >= 60 THEN 'Pass'
WHEN NOT (NULL >= 60) THEN 'Fail'
ELSE 'Unknown'
END AS result;
لا يتحقق أي من الشرطين في المثال؛ فكلاهما غير معروف. يصل التعبير بالتالي إلى الفرع الاحتياطي الذي يصف غياب الحكم.
باختصار: فروع CASE تحتاج إلى شرط صحيح، ونفي مقارنة تحتوي على قيمة مفقودة لا يجعلها صحيحة تلقائيًا.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.