ORDER BY جملة. فرز SQL - الترتيب حسب جملة ترتيب SQL حسب مثال الاستعلامات

💖 هل يعجبك؟شارك الرابط مع أصدقائك

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

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

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

يختار * من طلب مجموع المنتجات حسب المبلغ

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

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

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

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

يختار * من طلب مجموع المنتجات حسب المبلغ، المدينة

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

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

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

يختار * من طلب مجموع المنتجات حسب المبلغ DESC، المدينة

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


الدورة القادمة:

الخطوة 8: الفرز البسيط

إذا كانت نتيجة استعلام SQL الخاص بك هي أن تصبح المادة المصدر للتقرير، فإن مسألة فرز البيانات فيه تصبح في غاية الأهمية، حيث أنه من الصعب جدًا على الشخص الذي يقرأ تقريرًا لم يتم فرزه بشكل صحيح العثور بسرعة على المصدر قطعة من المعلومات التي يحتاجونها. لفرز البيانات حسب أعمدة نتائج الاستعلام (في حالتنا، حسب حقول الجدول)، يستخدم SQL الكلمة الأساسية ORDER BY. ويرد أدناه مثال على أبسط الفرز. الأساس مأخوذ من الطلب من الخطوة 2: "الطلب بمعيار اختيار بسيط". نقوم بفرز الموظفين حسب حقل S_NAME (الاسم الكامل).

حدد S_NAME، S_EXPERIENCE من D_STAFF حيث S_EXPERIENCE

فرز نتيجة استعلام SQL حسب حقل واحد.

الخطوة 9. الفرز المعقد

من الضروري في كثير من الأحيان، وحتى دائمًا تقريبًا، فرز البيانات حسب أكثر من عمود وليس دائمًا بترتيب تصاعدي. يفترض بناء جملة SQL أنه بعد الكلمة الأساسية ORDER BY، يتم عرض قائمة الأعمدة مفصولة بفاصلة، بالإضافة إلى طريقة الفرز لكل عمود: بترتيب تصاعدي للقيم - ASC أو بترتيب تنازلي - DESC. في المثال أدناه، نعرض السجلات لجميع الموظفين بترتيب تنازلي لمدة خدمتهم. نقوم بفرز الموظفين الذين لديهم نفس مدة الخدمة بالترتيب الأبجدي.

حدد S_EXPERIENCE، S_NAME من D_STAFF ORDER BY S_EXPERIENCE DESC، S_NAME ASC


فرز نتيجة استعلام SQL بواسطة حقلين.

في كثير من الأحيان، يتم استخدام ترتيب الفرز العكسي مع أعمدة مثل [التاريخ]. إذا كان التاريخ يخزن، على سبيل المثال، تاريخ إدخال المعلومات، فعند الفرز العكسي، تظهر تلك السجلات التي تمت إضافتها مؤخرًا مقارنة بالباقي في بداية القائمة. إذا كان الاستعلام يسترد إعلانات الأخبار من قاعدة البيانات، فسنتلقى قائمة بالإعلانات مرتبة تنازليًا حسب أهميتها، وهو ما يمكن أن يكون مفيدًا للغاية، نظرًا لأن الإعلانات تُقرأ عادةً من الأعلى إلى الأسفل، ولا تظهر جميعها على مواقع الأخبار ، ولكن فقط عدد قليل من الأكثر "طازجة".

عند استرجاع البيانات، قد يكون من المهم الحصول عليها بشكل مرتب معين. يمكن إجراء الفرز حسب أي حقول بأي نوع بيانات. يمكن أن يكون هذا فرزًا تصاعديًا أو تنازليًا للحقول الرقمية. بالنسبة لحقول الأحرف (النص)، يمكن فرزها بترتيب أبجدي، على الرغم من أنها في الأساس يتم فرزها أيضًا بترتيب تصاعدي أو تنازلي. ويمكن أيضًا تنفيذه في أي اتجاه - من الألف إلى الياء، وبالعكس من الياء إلى الألف.

جوهر عملية الفرز هو تقليل التسلسل إلى ترتيب معين. يمكنك معرفة المزيد حول الفرز في مقالة "خوارزميات الفرز". على سبيل المثال، فرز تسلسل رقمي عشوائي بترتيب تصاعدي:

2, 4, 1, 5, 9

يجب أن يؤدي إلى تسلسل مرتب:

1, 2, 4, 5, 6

وبالمثل، عند الفرز بترتيب تصاعدي لقيم السلسلة:

إيفانوف إيفان، بيتروف بيتر، إيفانوف أندريه

يجب أن تكون النتيجة:

إيفانوف أندريه، إيفانوف إيفان، بيتروف بيتروف

هنا انتقل السطر "أندريه إيفانوف" إلى البداية، حيث تتم مقارنة السلاسل حرفًا بحرف. يبدأ كلا السطرين بنفس الأحرف "إيفانوف". نظرًا لأن الرمز "A" في كلمة "Andrey" يأتي في الأبجدية أقدم من الرمز "I" في كلمة "Ivan"، فسيتم وضع هذا السطر في وقت سابق.

الفرز في استعلام SQL

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

على سبيل المثال، نستخدم سلع جدول البضائع:

رقم
(رقم الشيء)
عنوان
(اسم)
سعر
(سعر)
1 الماندرين50
2 بطيخ120
3 أناناس80
4 موز40

تم ترتيب البيانات هنا بالفعل حسب العمود "num". الآن، لنقم بإنشاء استعلام يعرض جدولًا بالمنتجات مرتبة حسب الترتيب الأبجدي:

يختار * من البضائع بالترتيب حسب العنوان

تحديد * من البضائع - يحدد تحديد كافة الحقول من جدول البضائع؛

ORDER BY – أمر الفرز؛

العنوان - العمود الذي سيتم من خلاله إجراء الفرز.

نتيجة تنفيذ مثل هذا الطلب هي كما يلي:

رقم عنوان سعر
3 أناناس80
2 بطيخ120
4 موز40
1 الماندرين50

يمكنك أيضًا الفرز لأي من حقول الجدول.

اتجاه الفرز

بشكل افتراضي، يقوم الأمر ORDER BY بالفرز بترتيب تصاعدي. للتحكم يدويًا في اتجاه الفرز، استخدم الكلمة الأساسية ASC (تصاعدي) أو DESC (تنازلي) بعد اسم العمود. وبالتالي، لعرض جدولنا بترتيب تنازلي للأسعار، عليك طرح الاستعلام على النحو التالي:

يختار * من السلع الطلب حسب السعر DESC

الترتيب حسب السعر التصاعدي سيكون:

يختار * من السلع الترتيب حسب السعر ASC

الفرز حسب حقول متعددة

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

العمود 1 العمود 2 العمود3
3 1 ج
1 3 ج
2 2 ب
2 1 ب
1 2 أ
1 3 أ
3 4 أ

لنقم بفرز الجدول وفقًا للقواعد التالية:

يختار * من ترتيب Mytable حسب العمود 1 ASC، العمود 2 DESC، العمود 3 ASC

أولئك. العمود الأول تصاعدي، والثاني تنازلي، والثالث تصاعدي مرة أخرى. سيقوم الاستعلام بترتيب الصفوف حسب العمود الأول، ثم، دون كسر القاعدة الأولى، حسب العمود الثاني. ثم أيضا دون مخالفة القواعد القائمة حسب الثالث. ستكون النتيجة مجموعة بيانات مثل هذا:

العمود 1 العمود 2 العمود3
1 3 أ
1 3 ج
1 2 أ
2 2 ب
2 1 ب
3 1 أ
3 1 ج

ترتيب الأمر ORDER BY في الاستعلام

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

يختار * من السلع حيث السعر 100الطلب حسب السعر ASC

ملحوظة:
تستخدم كافة المقالات الموجودة في الفئة التعليمية الحالية لـ SQL أمثلة ومشكلات تعتمد على قاعدة بيانات تدريبية.

وفقًا للنموذج العادي الأول لقواعد البيانات العلائقية، لا ينبغي أن يكون ترتيب الصفوف في الجداول مهمًا. لكن من الناحية العملية، غالبًا ما يكون من الضروري فرز المعلومات قبل عرضها على الشاشة.

تعتبر جملة ORDER BY مسؤولة عن ترتيب الصفوف المحملة في استعلام SQL. وهو موجود في نهاية الطلب:

يختار<Перечень столбцов>من<Перечень таблиц>ترتيب حسب<Условие сортировки>

يحدد شرط الفرز الأعمدة التي سيتم من خلالها فرز صفوف الجدول الناتجة:

الترتيب حسب العمود 1، العمود 2

ترتيب الفرز في SQL

هناك خياران للفرز: تصاعدي وتنازلي. للإشارة إلى نوع الفرز في الاستعلام، بعد اسم العمود، حدد الكلمة الأساسية ASC (تصاعدي) أو DESC (تنازلي)، والتي تحدد الترتيب التصاعدي أو التنازلي، على التوالي. النوع الافتراضي هو ASC:

ORDER BY col1 - الجملة التالية ستكون مكافئة لـ ORDER BY col1 ACS

من الممكن أيضًا تحديد ترتيب مختلف لأعمدة مختلفة:

الترتيب حسب col1 DESC، col2 ASC

لتوحيد المواد، حل المشكلة في قاعدة البيانات التعليمية:

تحتاج إلى الحصول على قائمة بمعرفات الموظفين، مرتبة حسب المجموعة بترتيب تصاعدي وتاريخ التوظيف، من الأحدث إلى الأقدم.

حدد المعرف، المجموعة، Hire_date من الموظفين، ORDER BY المجموعة، Hire_date DESC

دعونا نكمل بناء جملة عبارة SELECT بعبارة ORDER BY (الشريط العمودي يعني أنه يجب تحديد أحد الخيارات):

حدد [TableName.]ColumnName[، [TableName.]ColumnName2 ...] من [[DatabaseName.]SchemaName.]TableName ColumnName [، [[TableName.]ColumnName2 ...]]

  • إلى الأمام >

إذا كانت المواد الموجودة في office-menu.ru قد ساعدتك، فيرجى دعم المشروع حتى نتمكن من تطويره بشكل أكبر.

تقوم جملة ORDER BY في Access بفرز السجلات التي يتم إرجاعها بواسطة استعلام بترتيب تصاعدي أو تنازلي لقيم الحقل (الحقول) المحددة.

بناء الجملة

يختار field_list
من طاولة
أين Selection_condition
[, المجال2 ][, ...]]]

تتضمن عبارة SELECT التي تحتوي على جملة ORDER BY العناصر التالية:

ملحوظات

جملة ORDER BY اختيارية. يجب استخدامه عندما تحتاج إلى عرض البيانات في شكل مرتبة.

ترتيب الفرز الافتراضي هو تصاعدي (من A إلى Z، ومن 0 إلى 9). يوضح المثالان أدناه فرز أسماء الموظفين حسب الاسم الأخير.

حدد اسم العائلة، الاسم الأول
من الموظفين
الطلب حسب اسم العائلة؛
حدد اسم العائلة، الاسم الأول
من الموظفين
الترتيب حسب اسم العائلة ASC؛

للفرز بترتيب تنازلي (من Z إلى A، ومن 9 إلى 0)، أضف الكلمة المحجوزة DESC في نهاية كل حقل تريد فرز السجلات به. يقوم المثال أدناه بفرز أسماء الموظفين بترتيب تنازلي للراتب.

اختر الاسم الأخير، الراتب
من الموظفين
الطلب حسب تصنيف الراتب، الاسم الأخير؛

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

عادة ما تكون جملة ORDER BY هي العنصر الأخير في عبارة SQL.

يمكنك تضمين حقول إضافية في جملة ORDER BY. يتم فرز السجلات أولاً حسب الحقل المحدد أولاً في عبارة ORDER BY. ثم يتم فرز السجلات التي لها نفس قيم الحقل الأول حسب الحقل الثاني المحدد، وهكذا.

أخبر الأصدقاء