BLOGS BY TOPIC▼
BLOGS BY AUTHOR▼
BLOGS BY YEAR▼
If your SQL queries return lots of records you'll probably want to sort the results in some kind of order. This blog teaches you how to use the ORDER BY clause to do exactly that!
- Sorting in SQL Server Queries (this blog)
- Finding the Top Records in a Query
This article is part of our complete SQL tutorial. You might also be interested in our introduction to SQL or advanced SQL training courses.
Posted by Andrew Gould on 23 July 2012
You need a minimum screen resolution of about 700 pixels width to see our blogs. This is because they contain diagrams and tables which would not be viewable easily on a mobile phone or small laptop. Please use a larger tablet, notebook or desktop computer, or change your screen resolution settings.
Sorting in SQL Server Queries
This blog teaches you how to sort the results of basic queries in Microsoft SQL Server.
The ORDER BY Clause
You can sort the results of a query by adding the ORDER BY clause to a SELECT statement. If you've read our blog on basic SQL queries you'll remember that ORDER BY is the last of the six main keywords in a SQL query. If you haven't read the previous blog, here's a quick reminder of the order of keywords:
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
Sorting Queries Using Column Names
To sort the results of a query you can simply add a column name to the ORDER BY clause:

Adding the FilmName field to the ORDER BY clause sorts the query results in ascending order of film title.
By default, a column will be sorted in ascending order. You can add the ASC keyword to make this more obvious:

The ASC keyword is optional but makes the query more readable.
You can sort a column in descending order by adding the DESC keyword after the column name:

Adding the DESC keyword sorts a column in descending order.
Sorting on Multiple Columns
You can sort your query on multiple columns by listing extra column names separated with commas:

Here the films are sorted in descending order of release date. Where multiple films share a release date they are sorted in ascending order of name.
Sorting Using Non-Selected Columns
You don't have to include a column in the SELECT list in order to use it in the ORDER BY clause:

The results of this query are sorted so that the most successful Oscar winners appear at the top, even though that field isn't shown in the query.
Sorting Queries Using Aliases
If you've used aliases to replace long column names in the SELECT list you can also use them in the ORDER BY clause:

Here we've used the alias to sort the films in descending order of duration.
Using an alias is also a useful way to sort on a calculated column.
What's Next?
Now that you've seen the basics of changing the order of query results it's time to see how to return a given number of items from a table using the TOP keyword. Read the next part of this series to find out how.
- Sorting in SQL Server Queries (this blog)
- Finding the Top Records in a Query