COALESCE לערכי NULL
חלק מהיחידה מעבר ליסודות במסלול ה-SQL של Coddy. שיעור 3 מתוך 27.
COALESCE מחזיר את הארגומנט הראשון שאינו NULL:
COALESCE(nickname, first_name, 'Anonymous')קורא משמאל לימין ועוצר בערך הראשון שאינו null. זו הדרך הנקייה ביותר לספק ערך חלופי בשאילתה, בלי צורך ב־CASE.
שימושים נפוצים:
- הצגת
0במקוםNULLמתוךLEFT JOIN:COALESCE(SUM(amount), 0) - בחירת השדה האופציונלי הראשון שאינו ריק:
COALESCE(mobile, home, work)
אתגר
קלהטבלאות והעמודות הזמינות:
users:id,display_name,orders:user_id,amount
החזר שורה אחת לכל משתמש עם:
idlabel:display_nameאם הוגדר, אחרתemail, אחרת'unknown'total_spent: סכום ערכיamountשל הזמנות המשתמש; משתמשים ללא הזמנות צריכים להציג0(ולאNULL)
מיין לפי id. רמז: LEFT JOIN מ-users אל orders יחד עם COALESCE(SUM(...), 0) מטפל בשורות החסרות.
נסו בעצמכם
SELECT u.id,
-- label באמצעות COALESCE
-- total_spent באמצעות COALESCE(SUM(...), 0)
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id
ORDER BY u.id
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה מעבר ליסודות
תרגלו בעצמכם: SQL אונליין