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