عبارت های ORDER BY و TOP در SQL — راهنمای جامع

۲۸۱ بازدید
آخرین به‌روزرسانی: ۱۰ مهر ۱۴۰۲
زمان مطالعه: ۲ دقیقه
عبارت های ORDER BY و TOP در SQL — راهنمای جامع

در این نوشته دو مورد از عبارت‌هایی که در SQL به همراه دستور SELECT استفاده می‌شوند، معرفی می‌کنیم.

عبارت ORDER BY

از این دستور برای مرتب‌سازی نتایج ارائه شده از سوی یک ستون یا ستون‌های مفروض استفاده می‌کنیم. با استفاده از عبارت SELECT در زبان SQL می‌توانیم صدها یا هزاران رکورد را بازیابی کنیم. در برخی موارد ممکن است متوجه شوید که مرتب‌سازی رکوردها بر اساس یک ستون مفروض مفید است. برای نمونه، وقتی رکوردهایی را از یک جدول Individual که در ادامه معرفی کرده‌ایم، انتخاب ‌کنیم می‌توانیم آن‌ها را بر اساس ستون LastName مرتب نماییم.

عبارت SQL

SELECT * FROM Individual

ORDER BY LastName;

جدول منبع

نتیجه

ترتیب صعودی

به طور پیش‌فرض ORDER BY ستون‌ها را با ترتیب صعودی مرتب می‌کند یعنی از کمترین مقادیر به سمت بزرگ‌ترین مقادیر. می‌توان با استفاده از کلیدواژه ASC این مسئله را به طور صریح تعیین کرد؛ اما ضرورتی برای این کار وجود ندارد. اگر بخواهیم مقادیر ما به صورت ابتدا بزرگ‌ترها و سپس حرکت به سمت مقادیر کوچک‌تر مرتب شوند، می‌توانیم از کلیدواژه DESC برای مرتب‌سازی نزولی استفاده کنیم.

عبارت SQL

SELECT * FROM Individual

ORDER BY LastName DESC;

نتیجه

مرتب‌سازی بر اساس ستون‌های چندگانه

می‌توانید ستون‌های چندگانه را با بیان نام هر ستون در بند ORDER BY و جداسازی نام ستون‌ها با کاما مرتب کنید. SQL ابتدا نتایج را بر اساس ستون نخست مرتب می‌کند، سپس به ستون دوم نگاه می‌کند و همین طور تا آخر، هر چند ستون که در بند ORDER BY تعیین شده باشد، به ترتیب مرتب‌سازی می‌کند.

عبارت SQL

SELECT * FROM Individual

ORDER BY FirstName, LastName;

نتیجه

عبارت TOP

بند TOP به شما امکان می‌دهد که چه تعداد نتیجه برای کوئری شما بازگشت داده شود.

در بخش‌های قبلی از سلسله آموزش‌های SQL با عبارت SELECT آشنا شدیم. در مثال‌هایی که در آن بخش ارائه کردیم همه رکوردهایی که معیار SELECT را داشتند بازگردانده می‌شدند. این وضعیت در صورتی که بخواهید تک تک رکوردها بررسی شوند، مناسب است؛ اما اگر بخواهیم فقط چند رکورد اولیه بررسی شوند چطور؟ در این موارد می‌توانید از بند TOP در SQL استفاده کنید.

بند TOP به ما امکان می‌دهد که تعیین کنیم چه تعداد ردیف باید بازگشت یابند. این وضعیت در بسیاری از جدول‌های بسیار بزرگ که هزاران رکورد دارند مفید است. بازگشت هزاران رکورد می‌تواند تأثیر سوئی بر روی عملکرد داشته باشد و اگر مشغول کار با پایگاه‌های داده در محیط production باشید، این امر می‌تواند منجر به تأثیر منفی روی تجربه کاربری مشتریانتان شود.

بند TOP در SQL از نوع Transact-SQL است و در ANSI SQL وجود ندارد. از این رو بسته به این که از چه سیستم پایگاه داده‌ای استفاده می‌کنید، ممکن است نتوانید از این بند بهره بگیرید.

عبارت SQL

SELECT TOP 3 * FROM Individual;

جدول منبع

نتیجه

تعیین درصد

این گزینه نیز در اختیار ما قرار دارد که به جای مقدار مطلق، تعیین کنیم درصدی از نتایج بازگردانده شوند. به این منظور باید از کلیدواژه PERCENT استفاده کنید.

عبارت SQL

SELECT TOP 40 PERCENT * FROM Individual;

نتیجه

بندهای SQL TOP و ORDER BY

اگر از بند TOP همراه با بند ORDER BY که قبل‌تر معرفی کردیم، استفاده کنید در این صورت بند TOP بر روی مجموعه نتایج مرتب شده اعمال می‌شود. از این رو اگر عبارت ORDER BY به ابتدای کوئری فوق افزوده شود، در نهایت چیزی شبیه زیر خواهیم داشت:

عبارت SQL

SELECT TOP 40 PERCENT * FROM Individual

ORDER BY LastName DESC;

نتیجه

اگر این نوشته مورد توجه شما قرار گرفته است، پیشنهاد می‌کنیم موارد زیر را نیز ملاحظه کنید:

==

بر اساس رای ۵ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
quackitquackit
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *