بناء المنطق الشرطي المتقدم باستخدام تعبير CASE WHEN في SQL ​في الدرس… — تحليل البيانات - Data Analysis — TG.ME

بناء المنطق الشرطي المتقدم باستخدام تعبير CASE WHEN في SQL
​في الدرس السابق، استعرضنا كيفية استبعاد أو تصفية القيم المفقودة باستخدام IS NULL و IS NOT NULL. ننتقل اليوم إلى أداة أساسية لإعادة تصنيف البيانات وإنشاء متغيرات جديدة دون تعديل الجداول الأصلية: تعبير CASE WHEN.
​الشرح الجوهري:
​يُعد CASE WHEN بمثابة جملة IF-THEN-ELSE داخل لغة SQL. يُتيح لك فحص شروط محددة صفاً بصف، وإرجاع قيمة مخصصة عندما يتحقق الشرط.
​يُستخدم بكثرة في:
​تصنيف العملاء (مثل: عميل برونزي، فضي، ذهبي).
​تقسيم القيم الرقمية إلى فئات (Binning/Bucketing).
​استبدال الأكواد والرموز بنصوص واضحة ومفهومة للأعمال.
​مثال عملي:
​لدينا جدول الطلبات orders ونريد تصنيف حجم كل طلب (order_tier) بناءً على قيمته المالية order_amount

SELECT
order_id,
customer_id,
order_amount,
CASE
WHEN order_amount >= 1000 THEN 'طلب مرتفع القيمة (High)'
WHEN order_amount >= 500 THEN 'طلب متوسط القيمة (Medium)'
ELSE 'طلب منخفض القيمة (Low)'
END AS order_tier
FROM orders;


ملاحظة الترتيب: يتم تقييم الشروط بالترتيب من الأعلى إلى الأسفل، وبمجرد تحقق أول شرط صحيح، تتوقف المقارنة ويُرجع الناتج فوراً.
​الخلاصة:
​يُختم تعبير CASE دائماً بالكلمة المفتاحية END.
​استخدام ELSE اختياري ولكنه ممارسة ممتازة لتجنب ظهور قيم NULL إذا لم يتحقق أي من الشروط السابقة.
​يمكنك أيضاً استخدام CASE داخل الدوال التجميعية مثل SUM(CASE WHEN ... THEN 1 ELSE 0 END) لحساب الشروط المخصصة (Conditional Aggregation).
❤2
August 14, 2026 2.3K 6