دالتا NULLIF و IIF
جزء من قسم ما وراء الأساسيات في رحلة SQL على Coddy — الدرس 4 من 27.
مساعدان شرطيان إضافيان، كلاهما صغير ومفيد.
تُرجع NULLIF(a, b) القيمة NULL عندما يكون a = b، وإلا فإنها تُرجع a. الاستخدام الكلاسيكي لها هو الحماية من القسمة على صفر:
SELECT total / NULLIF(count, 0) AS average
FROM statsإذا كانت count تساوي صفراً، فسنحصل على NULL بدلاً من حدوث خطأ.
IIF(cond, a, b) هو اختصار لفرعين لـ CASE WHEN cond THEN a ELSE b END. استخدمه عندما يكون الخيار ثنائياً؛ واستخدم CASE عندما يكون هناك المزيد من الفروع.
التحدي
سهلالجداول والأعمدة المتاحة:
<strong>matches</strong>:<strong>id</strong>,<strong>shots</strong>,<strong>goals</strong>
لكل مباراة، قم بإرجاع ما يلي:
idconversion:goals * 1.0 / shots، ولكنNULLعندما تكونshotsهي0(استخدمNULLIF)verdict:'win'عندما تكونgoals > 0، وإلا'no goals'(استخدمIIF)
الترتيب حسب id.
ورقة مرجعية
NULLIF(a, b) تُرجع NULL عندما يكون a = b، وإلا فإنها تُرجع a. مفيدة لتجنب القسمة على صفر:
SELECT total / NULLIF(count, 0) AS average
FROM statsIIF(cond, a, b) هي اختصار لتعبير CASE بفرعين:
SELECT IIF(goals > 0, 'win', 'no goals') AS verdict
FROM matchesجرّب بنفسك
SELECT id,
-- تحويل باستخدام NULLIF
-- القرار باستخدام IIF
FROM matches
ORDER BY id
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس ما وراء الأساسيات
1المنطق الشرطي
CASE WHENاستخدام CASE في ORDER BYدالة COALESCE للتعامل مع قيم NULLدالتا NULLIF و IIFمراجعة - الحضور