تعلم لغة الاستعلام البنائية ( SQL ) – الدرس الثاني عشر Order by
يكون ترتيب نتيجة الاستعلام مفيدًا في الغالب عندما نحتاج إلى إلقاء نظرة على الأشياء من الصف الأكثر أهمية إلى الصف الأقل أهمية. على سبيل المثال ، للإجابة على السؤال “من هم الأشخاص الذين حصلوا على أعلى الدرجات” ، يمكن الإجابة عن طريق طلب النتيجة وقراءة صف النتيجة تلو الصف.
لنأخذ قائمة بالدرجات وننشئ قائمة بالأسماء المرتبة أبجديًا من الألف إلى الياء:
CREATE TABLE grades (name TEXT, subject TEXT, grade INTEGER); INSERT INTO grades (name, subject, grade) VALUES ("Ahmad", "CompSci", 97), ("Walid", "CompSci", 88), ("Amel", "Arts", 99), ("Ahmad", "History", 93), ("Sofian", "History", 82), ("Walid", "History", 87), ("Karim", "Physics", 91), ("Ahmad", "Physics", 84), ("Hicham", "Physics", 97); SELECT DISTINCT name FROM grades ORDER by name;
سنحصل على النتيجة التالية عند التشغيل
Sofian Hicham Amel Walid Ahmad Karim
الآن ، دعنا نحصل على قائمة بالدرجات ونرتب جميع الدرجات من الأعلى إلى الأدنى. لاحظ أن اتجاه الطلب معاكس الآن مما يعني أن الطلب تنازلي. ويلاحظ ترتيب تنازلي باستخدام الأمر DEST.
CREATE TABLE grades (name TEXT, subject TEXT, grade INTEGER); INSERT INTO grades (name, subject, grade) VALUES ("Ahmad", "CompSci", 97), ("Walid", "CompSci", 88), ("Amel", "Arts", 99), ("Ahmad", "History", 93), ("Sofian", "History", 82), ("Walid", "History", 87), ("Karim", "Physics", 91), ("Ahmad", "Physics", 84), ("Hicham", "Physics", 97); SELECT name, subject, grade FROM grades ORDER by grade DESC;
سنحصل على النتيجة التالية عند التشغيل
Amel|Arts|99 Ahmad|CompSci|97 Hicham|Physics|97 Ahmad|History|93 Karim|Physics|91 Walid|CompSci|88 Walid|History|87 Ahmad|Physics|84 Sofian|History|82
تمرين
احصل على قائمة بالمواضع المرتبة أبجديًا من قائمة الدرجات.
CREATE TABLE grades (name TEXT, subject TEXT, grade INTEGER); INSERT INTO grades (name, subject, grade) VALUES ("Ahmad", "CompSci", 97), ("Walid", "CompSci", 88), ("Amel", "Arts", 99), ("Ahmad", "History", 93), ("Sofian", "History", 82), ("Walid", "History", 87), ("Karim", "Physics", 91), ("Ahmad", "Physics", 84), ("Hicham", "Physics", 97); -- أدخل رمز هنا
الحل
CREATE TABLE grades (name TEXT, subject TEXT, grade INTEGER); INSERT INTO grades (name, subject, grade) VALUES ("Ahmad", "CompSci", 97), ("Walid", "CompSci", 88), ("Amel", "Arts", 99), ("Ahmad", "History", 93), ("Sofian", "History", 82), ("Walid", "History", 87), ("Karim", "Physics", 91), ("Ahmad", "Physics", 84), ("Hicham", "Physics", 97); -- أدخل رمز هنا SELECT DISTINCT subject FROM grades ORDER BY subject;
سنحصل على النتيجة التالية عند التشغيل
Arts CompSci History Physics