دستور ORDER BY در SQL Server
در SQL Server از عبارت ORDER BY در کویری SELECT استفاده می شود تا نتیجه را به ترتیب صعودی یا نزولی یک یا چند ستون مرتب کند.
سینتکس آن به صورت زیر است:
ویژگی های ORDER BY :
1 - عبارت ORDER BY برای دریافت رکوردهای مرتب شده در یک یا چند ستون به ترتیب صعودی یا نزولی استفاده می شود.
2 - در صورت وجود عبارت ORDER BY باید بعد از عبارت WHERE ، GROUP BY و HAVING قرار گیرد.
3 - از ASC یا DESC برای تعیین ترتیب مرتب سازی بعد از نام ستون استفاده کنید. از ASC برای مرتب کردن رکوردها به ترتیب صعودی یا از DESC برای نزولی استفاده کنید. به طور پیش فرض، اگر ترتیب مشخص نشده باشد، ORDER BY رکوردها را به ترتیب صعودی مرتب می کند.
برای درک بهتر، ما از Employee و Department زیر در همه نمونه ها استفاده خواهیم کرد.
کویری زیر تمام رکوردها را از جدول Employee می گیرد و نتیجه را به ترتیب صعودی مقادیر FirstName مرتب می کند.
کویری فوق نتیجه زیر را در SQL Server برمی گرداند.
کویری زیر ردیف ها را به ترتیب نزولی مقدار FirstName برمی گرداند.
کویری بالا نتیجه زیر را در SQL Server برمی گرداند.
مرتب سازی بر اساس چندین ستون
دستور ORDER BY می تواند شامل چندین ستون به ترتیب مرتب سازی مختلف (صعودی یا نزولی) باشد. هنگامی که چندین ستون را با عبارت ORDER BY اضافه می کنید، رکوردها را بر اساس ستون اول مرتب می کند و اگر هر دو یا چند رکورد در ستون اول ORDER BY مقدار یکسانی داشته باشند، آنها را بر اساس ستون دوم ORDER BY مرتب می کند.
برای درک این موضوع، ابتدا نتیجه را بر اساس ستون DeptId مرتب کنید، همانطور که در زیر نشان داده شده است.
کویری بالا نتیجه زیر را نمایش می دهد.
اکنون، ستون FirstName را در عبارت ORDER BY قرار دهید.
کوئری بالا ابتدا نتیجه را بر اساس DeptId مرتب می کند و سپس ردیف هایی که همان DeptId را دارند بر اساس FirstName مرتب می شوند. به یاد داشته باشید، ما ASC یا DESC را در نظر نگرفته ایم، بنابراین نتایج را به صورت پیش فرض به ترتیب صعودی مرتب می کند، همانطور که در زیر نشان داده شده است.
مرتب سازی گروه رکوردها
کویری زیر گروه رکوردها را مرتب می کند.
پرس و جوی بالا نتیجه زیر را نمایش می دهد.