دستور Order By :

اطلاعات خروجی در دستور select به طور کلی بی نظم است و مقادیر خروجی در ستون های جدول بر حسب مقدار هیج ستونی مرتب نیستند . این دستور برای مرتب کردن اطلاعات جدول بر اساس مقادیر یک یا چند ستون برحسب شاخص هایی مثل ترتیب حروف الفبا ، بزرگتر یا کوچکتر بودن اعداد و … استفاده می شود .
شکل کلی این دستور به صورت زیر است :

Select  نام فیلدهای مورد نظر  From  جدول مورد نظر
Order By   فیلد مورد نظر

* فیلدهای معرفی شده در دستور Select از جدول مذکور نمایش داده شده و اطلاعات بر حسب ستون مقابل دستور Order By مرتب می شوند .
عبارت ASC : به کار بردن این دستور پس از دستور Order By باعث مرتب شدن اطلاعات درون جدول از کم به زیاد می شود که البته اتخاب پیش فرض SQL است و نیازی به درج آن نیست .
عبارت DESC : به کار بردن این واژه پس از دستور Order By باعث مرتب شدن اطلاعات جدول از زِیاد به کم در اعداد و در حروف از z تا a می شود ، که در صورت نیاز درج آن ضروری است .

مثال : از جدول Student ، مشخصات نام و نام خانوادگی دانشجویان رشته نرم افزار را بر حسب حروف الفبا نمایش دهید :

Student Table
Student ID Name Family Major City Grade
۴۱۲۵۲۲۱۴ Ahmad Rezaee Hard Ware Tehran ۱۸
۱۰۷۲۴۱۱۳ Ehsan Amiri Soft Ware Karaj ۱۴
۱۰۲۵۴۸۶۱ Zahra Hosini Hard Ware Tehran ۱۷
۲۷۳۶۵۱۸۷ Sahar Ahmadi Soft Ware Bam ۱۶
۳۵۶۵۴۴۱۵ Hesam Razavi Soft Ware Tehran ۱۹

 

مثال
Select  Name , Family   From Student
Where Major =”Soft Ware”
Order By Family
کد
Name Family
Sahar Ahmadi
Ehsan Amiri
Hesam Razavi
خروجی

 

نکته : همچنین می توان یک جدول را بر حسب بیش از یک فیلد مرتب کرد ، برای این منظور پس از دستور Order By نام تمام فیلدهای مورد نظر را نوشته و آنها را با کاما از هم دا می کنیم . اولویت مرتب سازی با فیلدهای است که نام آنها زودتر ذکر شده باشند .

مثال : جدول مشخصات دانشجویان را بر حسب فیلد نام ( بر حسب حروف از a تا z ) و بر حسب نمره ( از کم به زیاد ) مرتب کنید :

Student Table
Student ID Name Family Major City Grade
۴۱۲۵۲۲۱۴ Ahmad Rezaee Hard Ware Tehran ۱۵
۱۰۷۲۴۱۱۳ Ehsan Amiri Soft Ware Karaj ۱۹
۱۰۲۵۴۸۶۱ Zahra Hosini Hard Ware Tehran ۱۸
۲۷۳۶۵۱۸۷ Sahar Ahmadi Soft Ware Bam ۲۰
۳۵۶۵۴۴۱۵ Hesam Razavi Soft Ware Tehran ۱۴

نکته : در جدول خروجی مثال زیر به ارتباط مقادیر ستون های Family , Grade توجه کنید . باوجود اینکه نمره درسی دانشجو حسام رضوی از احمد رضایی کمتر است ، ولی به دلیل اینکه اولویت مرتب سازی با نام خانوادگی است ، نام رضوی بالاتر از رضایی قرار گرفته است .

مثال
Select Name , Family , Grade From Student
Order By Family ASC , Grade DESC
کد
Name Family Grade
Sahar Ahmadi ۲۰
Ehsan Amiri ۱۹
Zahra Hoseini ۱۸
Hesam Razavi ۱۴
Ahmad Rezaee ۱۶
خروجی

نکته : می توان در دستور Order By به جای ذکر نام ستون ها از یک عدد به جای آن استفاده کرد . عدد استفاده شده شماره قرار گیری ستون مورد نظر در دستور Select است . برای مثال اولین ستون دستور Select عدد ۱ و دومین ستون عدد ۲ و … را خواهند داشت . بازنویسی دستور بالا با استفاده از این روش به صورت زیر خواهد بود :

مثال
Select Name , Family , Grade from Student
Order By 2 ASC , 3 DESC
کد