SQL ORDER BY Keyword

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

🟢 ساختار کلی

SELECT column1, column2, ... FROM table_name WHERE condition ORDER BY column1 [ASC|DESC], column2 [ASC|DESC];
  • ASC: مرتب‌سازی صعودی (پیش‌فرض)

  • DESC: مرتب‌سازی نزولی

🟡 مثال‌های متداول

1️⃣ مرتب‌سازی صعودی (پیش‌فرض)

SELECT name, age FROM users ORDER BY age;

کاربران را بر اساس سن از کم به زیاد مرتب می‌کند.

2️⃣ مرتب‌سازی نزولی

SELECT name, salary FROM employees ORDER BY salary DESC;

حقوق‌ها از بیشترین به کمترین.

3️⃣ مرتب‌سازی چندستونی

SELECT name, city, age FROM users ORDER BY city ASC, age DESC;

ابتدا بر اساس شهر صعودی، سپس در هر شهر بر اساس سن نزولی.

4️⃣ همراه با WHERE

SELECT name, score FROM students WHERE score >= 50 ORDER BY score DESC;

فقط دانشجویانی که نمره ۵۰ یا بالاتر دارند، به ترتیب بیشترین نمره.

5️⃣ محدود کردن نتایج مرتب‌شده

SELECT * FROM products ORDER BY price DESC LIMIT 5;

۵ محصول گران‌ترین.

🟠 نکات مهم

  • می‌توانید با نام ستون، نام مستعار (Alias) یا شماره ایندکس ستون مرتب کنید:

    SELECT name, age FROM users ORDER BY 2 DESC; -- ستون دوم یعنی age
  • مرتب‌سازی متنی در برخی DBها به Collation (حساسیت به حروف یا زبان) بستگی دارد.

  • برای مرتب‌سازی روی نتیجه توابع تجمعی، از ORDER BY بعد از GROUP BY استفاده کنید.

✅ جمع‌بندی

  • ORDER BY نتایج را بعد از فیلتر شدن مرتب می‌کند.

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

  • می‌توانید چند ستون را با ترتیب مختلف مرتب کرده و با LIMIT تعداد نتایج خروجی را محدود نمایید.