در هنگام پرس و جو، خروجی بر اساس کلید اصلی مرتب میباشد. درصورتیکه بخواهیم بر اساس یک یا چند ستون دیگر مرتب سازی خروجی انجام شود باید از عبارت Order By در انتهای دستور Select استفاده نمایید. در این آموزش با دستور Order By در Sql آشنا خواهید شد.
در ضمن پیشنهاد ما این است که مطالب را به ترتیب بخوانید. اگر آموزش قبل مربوط به عملگر Like در Sql را هنوز مشاهده نکردهاید بهتر است که ابتدا این آموزش را مشاهده کنید.

آموزش تصویری دستور Order By در Sql
دستور مرتب سازی در Sql
با استفاده از Order By امکان مرتب سازی جواب پرسوجو وجود دارد. شکل کلی دستور بصورت زیر میباشد.
select * / لیست فیلدها from نام جدول Order By نام فیلد موردنظر
درصورتیکه در دستورات شرط هم داشته باشید باید عبارت Order By بعد از دستور where نوشته شود.
select * / لیست فیلدها from نام جدول where شرط مورد نظر Order By نام فیلد موردنظر
میتوان در مقابل Order By از موارد زیر استفاده کرد:
- نام فیلد که لزومی ندارد حتماً این فیلد در Select وجود داشته باشد.
- شماره فیلد مقابل Select مثلا عدد 1 برابر با اولین فیلد مقابل select است
- Alias به عنوان اسم فیلد
توجه داشته باشید مرتب سازی بصورت پیش فرض صعودی است در صورتیکه بخواهید مرتب سازی نزولی باشد باید در مقابل Order By از عبارت DESC استفاده کنید.

امکان مرتبسازی بر اساس فیلد محاسباتی وجود دارد. در پرسوجو زیر شماره فاکتور و مبلغ فروش نمایش داده میشود و بر روی ستون مبلغ فروش مرتبسازی نزولی انجام شده است.
select SalesOrderId,(1-UnitPriceDisCount)*OrderQty*UnitPrice 'Mablagh' from sales.salesorderdetail order by mablagh desc یا select SalesOrderId,(1-UnitPriceDisCount)*OrderQty*UnitPrice 'Mablagh' from sales.salesorderdetail order by 2 desc

مرتب سازی داده ها در Sql
امکان مرتب سازی دادهها بر اساس بیش از یک فیلد وجود دارد. شکل کلی دستور بصورت زیر میباشد.
select * from production.product order by Name, Color
در مرتب سازی بر اساس بیش از یک فیلد ممکن است فیلد دوم مورد استفاده قرار نگیرد در واقع در شرایطی که رکوردها در اولین فیلد مقابل Order By مقادیر یکتا داشته باشند فیلد دوم به بعد هرگز مورد استفاده قرار نمیگیرند. در مثال فوق در صورتیکه نام کالای تکراری وجود داشته باشد از ستون رنگ کالا برای مرتب سازی این کالاهای همنام استفاده خواهد شد.
در مرتب سازی بر اساس چند فیلد، هریک از فیلدها میتواند جداگانه بصورت صعودی یا نزولی باشد. در مثال زیر مرتب سازی بر اساس رنگ بصورت نزولی مرتب میشود و در مواقعی که رنگ کالاها یکسان است بر اساس نام که بصورت صعودی است مرتب سازی انجام میشود.
select * from production.product order by Color Desc, Name
Select * From product Where productId>700 Order by Color DESC, Name
هنگامیکه مقدار یک ستون برابر با Null (بدون مقدار) باشد در مرتب سازی این مقدار از همه مقادیر کوچکتر در نظر گرفته میشود.
مرتب سازی رکوردها
با استفاده از دستور Order By امکان مرتب سازی رکوردهای خروجی در اس کیو ال وجود دارد.
سرفصل های آموزش Sql
- 01 Sql Server | نصب Sql Server 2014 رایگان 05:14
- 02 Sql Server | آموزش Sql Server رایگان 05:47
- 03 Sql Server | دستور Select در Sql رایگان 06:52
- 04 Sql Server | دستور Where در Sql رایگان 08:12
- 05 Sql Server | عملگر Like در Sql رایگان 09:42
- 06 Sql Server | دستور Order By در Sql رایگان 07:07
- 07ویتامین استوایی | آموزش رایگان Sql Server عضویت 7 فیلم آموزشی
- 08 جادوی استوایی | آموزش کامل Sql Server خرید 41 فیلم آموزشی
سلام خانم غیبی اموزشتان خیلی مفید بود واقعا متشکرم.
سلام دوست عزیز. خوشحالم که از آموزش ها راضی بودید. موفق و پیروز باشید
سلام خانوم
ممنون بابت آموزش برای گرفتن لیست پرفروش ها بدردم خورد ممنونم
سلام
خواهش میکنم خوشحالم که آموزش براتون مفید بوده
سلام خانوم تشکر بابت آموزشتان
سوال من در رابطه با این هست الان با دستور Order By محصولاتمان را مرتب سازی کردیم داخل جدول دیتابس .
چه جوری باید خروجی جیسون بگیریم مثلا چه جوری همون کالاهایی که مرتب کردیم بیایم دریافت کنیم به صورت json .
تشکر