كيف يؤثر ترتيب شروط CASE على النتيجة في SQL؟

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

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

الإجابة

يعيد تعبير CASE نتيجة أول شرط صحيح بحسب ترتيب فروع WHEN. لا يختار الشرط الأكثر تحديدًا تلقائيًا، ولا يستبدل النتيجة بنتيجة فرع لاحق لمجرد أنه صحيح أيضًا. لذلك يصبح ترتيب الشروط جزءًا من منطق التصنيف، خصوصًا عندما تتداخل الحدود العددية المستخدمة في الفروع.

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

مثال

SELECT CASE
  WHEN 95 >= 90 THEN 'Excellent'
  WHEN 95 >= 60 THEN 'Pass'
  ELSE 'Retry'
END AS level;

يعطي المثال التصنيف الأعلى لأن شرطه جاء أولًا. تغيير ترتيب الفرعين يغير النتيجة رغم بقاء الشرطين نفسيهما صحيحين.

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

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

اختبر فهمك

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

CREATE TABLE employees (score INT);
INSERT INTO employees (score) VALUES (95);
SELECT CASE
  WHEN score >= 60 THEN 'Pass'
  WHEN score >= 90 THEN 'Excellent'
  ELSE 'Retry'
END AS level
FROM employees;