استخدام 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
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس ما وراء الأساسيات
1المنطق الشرطي
CASE WHENاستخدام CASE في ORDER BYدالة COALESCE للتعامل مع قيم NULLدالتا NULLIF و IIFمراجعة - الحضورتدرّب بنفسك: Playground لـ SQL