استخدام CASE في ORDER BY
جزء من قسم ما وراء الأساسيات في رحلة SQL على Coddy. الدرس 2 من 27.
عبارة CASE ليست مخصصة فقط لـ SELECT. يمكنك وضعها داخل ORDER BY لفرز الـ rows وفقًا لقاعدة مخصصة لا يمكن للأعمدة بمفردها التعبير عنها.
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. استخدم أيًا منهما يبدو أكثر وضوحًا.
التحدي
سهلالداول والأعمدة المتاحة:
<strong>tasks</strong>:<strong>id</strong>,<strong>title</strong>,<strong>priority</strong>
قم بإعادة title و priority، مرتبة بحيث يأتي 'critical' أولاً، ثم 'high'، ثم 'low'، وأي شيء آخر أخيراً. بالنسبة للقيم التي لها نفس الـ priority، قم بالفرز حسب title أبجدياً (alphabetically).
جرّب بنفسك
SELECT title, priority
FROM tasks
ORDER BY
-- استبدل ترتيب العنصر النائب أدناه بتعبير CASE الذي
-- يرتب الصفوف بالطريقة التي تصفها المهمة، ثم يكسر التعادلات أبجديًا
id
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس ما وراء الأساسيات
1المنطق الشرطي
CASE WHENاستخدام CASE في ORDER BYدالة COALESCE للتعامل مع قيم NULLدالتا NULLIF و IIFمراجعة - الحضورتدرّب بنفسك: Playground لـ SQL