The SQL ORDER BY clause is used to sort the result-set in ascending or descending order. When working with databases, it's common to need to sort data based on multiple columns. This can be achieved by specifying multiple columns in the ORDER BY clause, separated by commas.
Naturally Worded Primary Topic Section with Semantic Relevance

In SQL, the ORDER BY clause is used in conjunction with the SELECT statement to retrieve data from a database. When sorting by multiple columns, the database will first sort by the first column specified, and then by the second column, and so on. This means that if two rows have the same value in the first column, they will be sorted based on the second column, and if they also have the same value in the second column, they will be sorted based on the third column, and so on.
Specific Subtopic with Natural Language Phrasing
For example, suppose we have a table called “employees” with columns “last_name”, “first_name”, and “salary”. We can use the following SQL query to retrieve all employees sorted by last name, and then by first name:
SELECT last_name, first_name, salary
FROM employees
ORDER BY last_name, first_name;
This query will return a list of employees sorted alphabetically by last name, and then by first name. If two employees have the same last name, they will be sorted by their first name.
Column Name | Data Type |
---|---|
last_name | varchar(50) |
first_name | varchar(50) |
salary | decimal(10, 2) |

Key Points
- The ORDER BY clause can be used to sort data by multiple columns.
- Columns are sorted in the order they are specified in the ORDER BY clause.
- If two rows have the same value in the first column, they will be sorted based on the second column, and so on.
- Data types of the columns should be considered when sorting by multiple columns.
- Different databases may have different sorting rules for certain data types.
Advanced Sorting Techniques

In addition to sorting by multiple columns, SQL also provides several advanced sorting techniques, such as sorting in descending order, sorting by expressions, and sorting by subqueries.
Sorting in Descending Order
To sort data in descending order, the DESC keyword can be used after the column name in the ORDER BY clause. For example:
SELECT last_name, first_name, salary
FROM employees
ORDER BY salary DESC;
This query will return a list of employees sorted by salary in descending order.
Sorting by Expressions
SQL also allows sorting by expressions, which can be useful when working with calculated columns. For example:
SELECT last_name, first_name, salary, salary * 0.1 AS bonus
FROM employees
ORDER BY bonus DESC;
This query will return a list of employees sorted by their bonus amount in descending order.
Sorting by Subqueries
Finally, SQL also allows sorting by subqueries, which can be useful when working with complex queries. For example:
SELECT last_name, first_name, salary
FROM employees
ORDER BY (SELECT AVG(salary) FROM employees WHERE department = 'sales') DESC;
This query will return a list of employees sorted by the average salary of the sales department in descending order.
What is the purpose of the ORDER BY clause in SQL?
+The ORDER BY clause is used to sort the result-set in ascending or descending order.
How do I sort data by multiple columns in SQL?
+To sort data by multiple columns, specify multiple columns in the ORDER BY clause, separated by commas.
What is the difference between ASC and DESC in SQL?
+ASC is used to sort data in ascending order, while DESC is used to sort data in descending order.
In conclusion, the ORDER BY clause is a powerful tool in SQL that allows for flexible and efficient sorting of data. By understanding how to use the ORDER BY clause, developers can create complex queries that meet the needs of their applications.