انتقل إلى محتوى الدرس

Preventing Divide by Zero NULLIF منع القسمة الصفرية بـ NULLIF

تعلّم التعبيرات الشرطية CASE و COALESCE وتحويل الأنواع CAST في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
1 صفوف تعليمية
MySQL
8 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

تقارن دالة NULLIF(expr1, expr2) بين قيمتين، فإذا تساوتا (expr1 = expr2) تعيد القيمة الفارغة NULL، وإلا فإنها تعيد القيمة الأولى expr1 كما هي. وتبرز أهميتها في حالتين عمليتين:

  • الوقاية من القسمة على صفر: كتابة revenue / NULLIF(visits, 0) تحول المقام الصفري إلى NULL، وبدمجها مع COALESCE(..., 0) نحصل على 0 بأمان تام.
  • تحويل النصوص الفارغة إلى NULL: يحول التعبير NULLIF(TRIM(notes), '') النص الفارغ إلى NULL حقيقي.
SQL
SELECT
  campaign_id,
  COALESCE(clicks / NULLIF(impressions, 0), 0) AS ctr_ratio,
  NULLIF(TRIM(coupon_code), '') AS clean_coupon
FROM ad_campaigns;