The ORDER BY Clause
The ORDER BY clause sorts the result set in ascending or descending order.
💡 ORDER BY puts your data in order — alphabetically, numerically, or chronologically.
Basic Syntax
SELECT column1, column2
FROM table_name
ORDER BY column1 ASC|DESC;
Ascending Order (Default)
SELECT first_name, last_name, salary
FROM employees
ORDER BY salary;
| first_name | last_name | salary |
|---|---|---|
| Dan | Wilson | 54000 |
| Bob | Smith | 62000 |
| Alice | Johnson | 75000 |
Descending Order
SELECT first_name, last_name, salary
FROM employees
ORDER BY salary DESC;
| first_name | last_name | salary |
|---|---|---|
| Eve | Brown | 91000 |
| Carol | Williams | 85000 |
| Alice | Johnson | 75000 |
Sort by Multiple Columns
SELECT department, first_name, salary
FROM employees
ORDER BY department ASC, salary DESC;
Sort by Column Position
-- Sort by the 3rd column in SELECT list
SELECT first_name, last_name, salary
FROM employees
ORDER BY 3 DESC;
⚠️ Using column positions in ORDER BY makes code harder to maintain. Always use column names instead.
Sort with Expressions
SELECT name, price, stock
FROM products
ORDER BY price * stock DESC;
✏️ Exercise: Sort employees by hire_date from newest to oldest
See Solution
SELECT * FROM employees
ORDER BY hire_date DESC;
✅ Key Takeaways
- ORDER BY sorts your results
- ASC for ascending (default), DESC for descending
- Sort by multiple columns for tie-breaking
- Always use column names, not positions
- NULLs sort to the end by default in most databases