CASE ב־ORDER BY
חלק מהיחידה מעבר ליסודות במסלול ה-SQL של Coddy. שיעור 2 מתוך 27.
CASE לא מיועד רק ל־SELECT. אפשר להציב אותו בתוך ORDER BY כדי למיין שורות לפי כלל מותאם אישית שהעמודות לבדן לא יכולות לבטא.
SELECT name, status
FROM tickets
ORDER BY
CASE status
WHEN 'urgent' THEN 1
WHEN 'high' THEN 2
WHEN 'normal' THEN 3
ELSE 4
ENDשימו לב לצורה הקצרה יותר: CASE column WHEN value THEN .... היא שקולה ל־WHEN column = value. השתמשו בצורה שנקראת בצורה ברורה יותר.
אתגר
קלטבלאות ועמודות זמינות:
tasks:id,title,priority
החזר את title ואת priority, בסדר שבו 'critical' מופיע ראשון, אחריו 'high', אחריו 'low', וכל ערך אחר מופיע אחרון. בתוך אותה רמת עדיפות, מיין לפי title בסדר אלפביתי.
נסו בעצמכם
SELECT title, priority
FROM tasks
ORDER BY
-- החליפו את סדר המיון הזמני שלהלן בביטוי CASE אשר
-- מדרג את השורות כפי שמתואר במשימה, ואז מכריע במקרה של שוויון לפי סדר אלפביתי
id
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה מעבר ליסודות
תרגלו בעצמכם: SQL אונליין