عبارت های ORDER BY و TOP در SQL — راهنمای جامع
در این نوشته دو مورد از عبارتهایی که در SQL به همراه دستور SELECT استفاده میشوند، معرفی میکنیم.
عبارت ORDER BY
از دستور order by در sql برای مرتبسازی نتایج ارائه شده از سوی یک ستون یا ستونهای مفروض استفاده میکنیم. با استفاده از عبارت 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;
نتیجه
اگر این نوشته مورد توجه شما قرار گرفته است، پیشنهاد میکنیم موارد زیر را نیز ملاحظه کنید:
- آموزش SQL Server – تکمیلی
- آموزش فرادرس آشنایی با View و پیاده سازی آن در SQL Server
- مجموعه آموزشهای علوم کامپیوتر
- عبارت های SELECT و WHERE در زبان SQL — راهنمای جامع
- اصول پایگاه داده و SQL — همه آن چه یک هکر باید بداند
- چگونه هزاران نوشته وردپرس را تنها با یک دستور SQL ویرایش کنیم؟
- مجموعه آموزش های پایگاه داده و سیستم های مدیریت اطلاعات
- آموزش SQL Server Management Studio | کامل، رایگان و گام به گام
- دستور inner join در SQL – از کاربرد تا نحوه استفاده به زبان ساده
- دستور CASE در SQL – از کاربرد تا نحوه استفاده به زبان ساده