يسمح التعبير CASE داخل UPDATE باختيار قيمة جديدة وفق شروط مختلفة. لكل فرع شرط ونتيجة، ويمكن إضافة ELSE لتحديد ما يحدث عندما لا ينطبق أي فرع. إذا غابت هذه النهاية ولم يتحقق أي شرط، تكون نتيجة التعبير NULL، وليست القيمة القديمة تلقائيًا.
للحفاظ على قيمة العمود في الصفوف غير المطابقة، يمكن كتابة اسم العمود نفسه بعد ELSE. هذه نقطة مهمة عندما لا يوجد شرط WHERE يستبعد تلك الصفوف أصلًا. أما إذا كان العمود يمنع القيم المفقودة، فقد ينتج عن غياب النهاية المناسبة خطأ بدل الاحتفاظ الصامت بالقيمة القديمة.
مثال
UPDATE employees
SET bonus = CASE
WHEN department = 'Sales' THEN 200
ELSE bonus
END;
يمنح المثال موظفي المبيعات مكافأة محددة، ويبقي مكافآت بقية الأقسام كما هي. جميع الصفوف تقع ضمن نطاق الأمر، لكن التعبير يحدد النتيجة المناسبة لكل صف.
باختصار: استخدم ELSE column_name عندما تريد إبقاء القيمة الحالية للفروع غير المطابقة.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.