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 כשיש יותר ענפים.
אתגר
קלטבלאות ועמודות זמינות:
matches:id,shots,goals
החזר עבור כל משחק:
idconversion:goals * 1.0 / shots, אבלNULLכאשרshotsהוא0(יש להשתמש ב-NULLIF)verdict:'win'כאשרgoals > 0, אחרת'no goals'(יש להשתמש ב-IIF)
מיין לפי id.
נסו בעצמכם
SELECT id,
-- המרה באמצעות NULLIF
-- הכרעה באמצעות IIF
FROM matches
ORDER BY id
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה מעבר ליסודות
תרגלו בעצמכם: SQL אונליין