شرح ORDER BY في لغة SQL
كلمة ORDER BY الأساسية تُستخدم لترتيب نتائج الاستعلام بترتيب تصاعدي أو تنازلي.
ما هو ORDER BY؟
يُستخدم ORDER BY لفرز مجموعة النتائج بترتيب تصاعدي أو تنازلي. بدون تحديد ORDER BY، لا يوجد ضمان أن تكون السجلات معروضة بترتيب معين. يمكن استخدامه مع أي استعلام SELECT، وأيضًا مع بعض استعلامات JOIN وSUBQUERY لتحقيق ترتيب محدد للبيانات.
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
مثال عملي على ترتيب رقمي
لنفترض أن لدينا جدول "المنتجات" التالي:
| ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
|---|---|---|---|---|---|
| 1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18 |
| 2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19 |
| 3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10 |
| 4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22 |
| 5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
لفرز المنتجات حسب السعر تصاعديًا:
ORDER BY Price ASC;
الترتيب التنازلي باستخدام DESC
لترتيب السجلات من الأعلى سعرًا إلى الأقل، نستخدم DESC:
ORDER BY Price DESC;
الترتيب النصي أبجديًا
بالنسبة للقيم النصية، يقوم ORDER BY بترتيبها أبجديًا من A إلى Z بشكل افتراضي:
ORDER BY ProductName ASC;
لترتيب النصوص عكسيًا من Z إلى A:
ORDER BY ProductName DESC;
الترتيب حسب عدة أعمدة
يمكنك فرز النتائج حسب أكثر من عمود:
ORDER BY Country ASC, CustomerName DESC;
هذا يعني: ترتيب العملاء تصاعديًا حسب البلد، وتنازليًا حسب الاسم داخل كل بلد.
فرز مخصص مع CASE
يمكنك ترتيب النتائج وفقًا لتسلسل مخصص باستخدام CASE:
FROM Products
ORDER BY CASE CategoryID
WHEN 2 THEN 1
WHEN 1 THEN 2
ELSE 3 END;
ملاحظة: عند عدم تحديد ASC أو DESC، يتم استخدام ASC افتراضيًا.
تمرين
ما هو الغرض من ORDER BY في SQL؟
- تصفية السجلات بناءً على شرط محدد
- فرز السجلات بترتيب تصاعدي أو تنازلي
- دمج الجداول
الإجابة الصحيحة: فرز السجلات بترتيب تصاعدي أو تنازلي
تعليقات
إرسال تعليق