TOP

SQL-الدرس الثالث. فرز البيانات (ORDER BY)

في المستقبل، قد نحتاج إلى فرز اختيارنا - أبجديًا للنص أو تصاعديًا/تنازليًا - للقيم الرقمية. لمثل هذه الأغراض، لدى SQL عامل تشغيل خاص ORDER BY.

يمكن لعامل SQL ORDER BY الفرز من الأصغر إلى الأكبر، أي بترتيب تصاعدي، وبترتيب عكسي - من الأكبر إلى الأصغر.


1. فرز البيانات المحددة

لنقم بفرز الجدول بأكمله حسب حجم مبيعات المنتج، وبالتحديد حسب عمود المبلغ.

Run SQLSELECT * 
FROM Sumproduct 
ORDER BY Amount

نرى أن الاستعلام قام بفرز السجلات بترتيب تصاعدي في حقل المبلغ. من الضروري مراقبة تسلسل ترتيب العوامل، أي أن العامل ORDER BY يجب أن يذهب في نهاية الطلب. وإلا، سيتم تلقي رسالة خطأ.

ومن ميزات عامل التشغيل ORDER BY أنه يمكنه فرز البيانات حسب الحقل الذي لم نحدده في الاستعلام، أي أنه يكفي وجوده في قاعدة البيانات على الإطلاق.

2. الفرز حسب عدة حقول

الآن دعونا نفرز مثالنا بالإضافة إلى حقل آخر. فليكن الحقل City الذي يعرض مكان بيع المنتجات.

Run SQLSELECT * 
FROM Sumproduct 
ORDER BY Amount, City

يعتمد ترتيب الفرز على ترتيب الحقول في الاستعلام. أي أنه في حالتنا، سيتم فرز البيانات أولاً حسب عمود المبلغ، ثم حسب City.

3. اتجاه الفرز

على الرغم من أن عامل التشغيل ORDER BY يقوم بالفرز بشكل افتراضي بترتيب تصاعدي، إلا أنه يمكننا أيضًا كتابة القيم بترتيب تنازلي. للقيام بذلك، نضع عامل التشغيل DESC (وهو اختصار لكلمة DESCENDING) في نهاية كل حقل.

Run SQLSELECT * 
FROM Sumproduct 
ORDER BY Amount DESC, City

في هذا المثال، تم فرز القيم الموجودة في حقل "المبلغ" بترتيب تنازلي، وفي الحقل City - بترتيب تصاعدي. ينطبق عامل التشغيل DESC على عمود واحد فقط، لذلك إذا لزم الأمر، يجب كتابته بعد كل حقل يشارك في الفرز.