سبد (0)

تبلیغات

عبارت order by در SQL

کلمه کلیدی ORDER BY برای مرتب کردن نتیجه پرس و جو استفاده می شود.


کلمه کلیدی ORDER BY

Wiki

دستور ORDER BY برای مرتب کردن نتیجه پرس و جو بر اساس ستون مشخص شده استفاده می شود.

در دستور ORDER BY به صورت پیش فرض، رکوردها به صورت صعودی (از کوچک به بزرگ) مرتب می شوند.

اگر می خواهید رکوردها را نزولی (از بزرگ به کوچک) مرتب کنید، باید از کلید واژه DESC استفاده کنید.

فرم کلی ORDER BY:

SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC


مثال:

Wiki

در جدول "Persons"

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Tom Vingvn 23 Stavanger

می خواهیم تمام افراد ازجدول بالا را انتخاب کنیم اما افراد بر اساس نام خانوادگی شان مرتب شده باشند.

از عبارت SELECT زیر استفاده می کنیم:

SELECT * FROM Persons
ORDER BY LastName

result-set به این صورت می شود:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
4 Nilsen Tom Vingvn 23 Stavanger
3 Pettersen Kari Storgt 20 Stavanger
2 Svendson Tove Borgvn 23 Sandnes

مثال ORDER در حالت DESC

Wiki

حالا می خواهیم تمام افراد جدول بالا را بر اساس ترتیب نزولی نام خانوادگی شان انتخاب کنیم.

از عبارت SELECT زیر استفاده می کنیم:

SELECT * FROM Persons
ORDER BY LastName DESC

result-set به صورت زیر خواهد بود:

P_Id LastName FirstName Address City
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Tom Vingvn 23 Stavanger
1 Hansen Ola Timoteivn 10 Sandnes

دیدگاه‌ها  

+5 # میلاد 1394-01-02 13:18
سلام
ممنون از آموزشهای خوبتون.
ایا میشه چینش جدول نتیجه به این صورت باشه که مثلا ابتدا براساس نام و اگه مساوی بود بر اساس یه چیز دیگه که خودمان تعیین کنیم باشه؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+6 # مظاهر نصوحی 1394-01-02 22:33
سلام
دقیقاً این اتفاق می افتد. وقتی می گوییم order by a,b سورت ابتدا روی ستون a و سپس روی ستون b انجام می شود. یعنی اگر مقادیر ستون a مساوی بود مقادیر ستون b برای مقایسه و چنینش نتیجه انتخاب می شود. در صورتی که مقادیر این ستون نیز برابر بود بر اساس چینش فیزیکی رکوردها مقادیر برگردانده می شود.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # mahdi! 1393-12-01 19:49
سلام
فرضا ما میخواهیم بر اساس نام افراد مرتب کنیم ولی نام دو فرد یکیه. آن وقت اساس چینش در result-set به چه صورت میشه؟ و کدوم فرد بالای دیگری در جدول قرار میگیره؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+9 # مظاهر نصوحی 1393-12-02 07:41
سلام.
در این صورت اگر هیچ گونه کلیدی روی سایر ستون های جدول نداشته باشیم، بر اساس ترتیب فیزیکی داده ها مرتب می شوند. یعنی رکوردی که دیرتر وارد شده زودتر نمایش داده می شود و به همین ترتیب رکوردهای بعدی. یعنی ترتیب زمانی درج رکوردها هستند که چینش result-set را مشخص می کنند.
در صورتی که در سایر ستون ها، primary key یا unique key داشته باشیم، بر اساس این ستون ها مرتب می شوند. یعنی مثلاً اگر کد ملی افراد به عنوان کلید اصلی جدول می باشد، ابتدا افراد بر اساس نامشان مرتب می شوند و در صورتی که نام های مشابهی داشته باشند، بر اساس کد ملی مرتب می شوند.
---------------------------------------------------------------------------------------------------------------------
توجه: اگر روی یک جدول یکبار کد ملی را به عنوان کلید اصلی تنظیم کنیم و سپس این کلید را حذف کنیم، چینش رکوردها پس از نام مجدداً بر اساس کد ملی می باشد. دلیلش هم این است که وقتی کد ملی را به عنوان کلید اصلی انتخاب می کنیم، چینش فیزیکی رکوردها بر اساس کد ملی در جدول تغییر پیدا می کند به عبارت دیگر دیگر ترتیب زمانی درج رکوردها چینش رکوردها در result-set را مشخص نمی کند.
برای درک بهتر این مفاهیم باید ایندکس ها را بشناسید، در لینک زیر نقل قولی وجود دارد که ایندکس ها بیشتر توضیح داده شده است:
http://beyamooz.com/sql/101-advanced/280-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1-create-index-%D8%AF%D8%B1-sql
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن

آموزش صوتی SQL

بستن
مدرس:
سوال و جواب:

ابزاری که در پیش روی دارید یکی از ابزارهای بسیار کاربردی سایت بیاموز در زمینه آموزش است، این ابزار برای سهولت یادگیری شما کاربران محترم طراحی شده است.

فقط کافی است روی عنوان پاراگراف مورد نظرتان کلیک کنید تا پخش صدا آغاز شود ...!

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه پرداخت آنلاین - بانک اقتصاد نوین پرداخت آنلاین - بانک سامان
 
دوره های آموزشی راه اندازی کسب و کارهای اینترنتی
تبلیغات اینترنتی