شبكة تعلم مع ناو

لماذا نستخدم ELSE داخل CASE عند تحديث عمود؟

يسمح التعبير CASE داخل UPDATE باختيار قيمة جديدة وفق شروط مختلفة. لكل فرع شرط ونتيجة، ويمكن إضافة ELSE لتحديد ما يحدث عندما لا ينطبق أي فرع. إذا غابت هذه النهاية ولم يتحقق أي شرط، تكون نتيجة التعبير NULL، وليست القيمة القديمة تلقائيًا.

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

مثال

UPDATE employees
SET bonus = CASE
  WHEN department = 'Sales' THEN 200
  ELSE bonus
END;

يمنح المثال موظفي المبيعات مكافأة محددة، ويبقي مكافآت بقية الأقسام كما هي. جميع الصفوف تقع ضمن نطاق الأمر، لكن التعبير يحدد النتيجة المناسبة لكل صف.

باختصار: استخدم ELSE column_name عندما تريد إبقاء القيمة الحالية للفروع غير المطابقة.

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

اختبر نفسك

خمسة أسئلة سريعة، مع الإجابة والشرح بعد كل سؤال.