دستور 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 |
کد | ||||||||
|
خروجی |
نکته : همچنین می توان یک جدول را بر حسب بیش از یک فیلد مرتب کرد ، برای این منظور پس از دستور 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 |
کد | ||||||||||||||||||
|
خروجی |
نکته : می توان در دستور Order By به جای ذکر نام ستون ها از یک عدد به جای آن استفاده کرد . عدد استفاده شده شماره قرار گیری ستون مورد نظر در دستور Select است . برای مثال اولین ستون دستور Select عدد ۱ و دومین ستون عدد ۲ و … را خواهند داشت . بازنویسی دستور بالا با استفاده از این روش به صورت زیر خواهد بود :
مثال | |
Select Name , Family , Grade from Student Order By 2 ASC , 3 DESC |
کد |