در SQL، برای مرتب‌سازی داده‌ها در یک جدول از ORDER BY استفاده می‌کنیم. این دستور می‌تواند داده‌ها را صعودی (از کوچک به بزرگ) یا نزولی (از بزرگ به کوچک) مرتب کند.


۱. مرتب‌سازی صعودی و نزولی 🆙⬇️

به‌طور پیش‌فرض، ORDER BY داده‌ها را به‌صورت صعودی (کمترین به بیشترین مقدار) مرتب می‌کند. اما اگر بخواهیم به‌صورت نزولی (بیشترین به کمترین مقدار) مرتب کنیم، از DESC استفاده می‌کنیم.

📌 مثال – مرتب‌سازی محصولات بر اساس قیمت 💰

🔹 این کوئری محصولات را بر اساس قیمت از کمترین به بیشترین مقدار نمایش می‌دهد.

📌 مثال – مرتب‌سازی نزولی بر اساس قیمت ⬇️

🔹 این کوئری محصولات را از گران‌ترین به ارزان‌ترین نمایش می‌دهد.

💡 تمرین:
یک کوئری بنویس که داده‌های جدول “Employees” را بر اساس “Salary” از بیشترین به کمترین مقدار مرتب کند.


۲. مرتب‌سازی بر اساس متن – حروف الفبا 🔠

وقتی ستونی شامل متن (string) باشد، ORDER BY آن‌ها را به‌صورت حروف الفبا (A → Z) مرتب می‌کند.

📌 مثال – مرتب‌سازی نام محصولات از A تا Z

🔹 این کوئری محصولات را بر اساس نام آن‌ها، به‌ترتیب حروف الفبا نمایش می‌دهد.

📌 مثال – مرتب‌سازی نام محصولات از Z تا A 🔄

🔹 این کوئری نام محصولات را به‌صورت برعکس (Z → A) مرتب می‌کند.

💡 چالش:
یک کوئری بنویس که جدول “Customers” را بر اساس “City” از Z تا A مرتب کند.


۳. مرتب‌سازی بر اساس چند ستون همزمان 🏛️

گاهی می‌خواهیم داده‌ها را ابتدا بر اساس یک ستون اصلی و سپس در صورت یکسان بودن مقدار آن ستون، بر اساس ستون دیگری مرتب کنیم.

📌 مثال – مرتب‌سازی مشتریان بر اساس کشور و سپس نام مشتری 🌍

🔹 ابتدا کشورها به ترتیب حروف الفبا مرتب می‌شوند.
🔹 اگر چند مشتری در یک کشور باشند، آن‌ها بر اساس نام مشتری مرتب خواهند شد.

📌 مثال – ترکیب صعودی و نزولی در مرتب‌سازی 🎭

🔹 کشورها به ترتیب الفبا (A → Z) مرتب می‌شوند.
🔹 مشتریان داخل هر کشور به صورت نزولی (Z → A) مرتب می‌شوند.

💡 تمرین:
یک کوئری بنویس که جدول “Orders” را بر اساس “OrderDate” به‌صورت صعودی و “TotalPrice” به‌صورت نزولی مرتب کند.


📢 جمع‌بندی – نکات مهم 🚀

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