Home » SQL Server – ORDER BY Clause

SQL Server – ORDER BY Clause

  • by

In this article, we are going to discuss the SQL order by clause and its uses

Order by clause we use to sorting of the records, The following illustrates the ORDER BY clause syntax:

SELECT
    select_list
FROM table_name
ORDER BY
    column_names

In the above syntax, you need to mention the column name which you want to sort, if you mentioned the multiple columns, the result set is sorted by the first column then that result set is sorted by the second column.

Default columns are sorted by ascending order, but through asc|desc the keyword, we can sort columns in any order, and null records placing in the lower order.

SQL Server ORDER BY clause example

We will use a student the table in the demonstration

student table records

Sort a result set by one column in ascending order

The below example will sort the result set by the Student_namein ascending order,

select Student_name,Mobile from 
dbo.student
order by Student_name

default record getting sorted by ascending order, the result of the above query is

student records in ascending order

Sort a result set by one column in descending order

The below example will sort the result set by the Student_name in descendingorder, you need to use desckeyword explicitly to sort in descendingorder,

select Student_name,Mobile from 
dbo.student
order by Student_name desc

the result set of the above example is

student records in descending order

Sort a result set by a column that is not in the select list

You can sort the result set by column not present in the select statement, but we can’t sort the records by the column which is not present in the table.

select Email from 
dbo.student
order by Student_name desc

Output

student records in descending  order

Sort by ordinal positions of columns.

We can sort the column by its position in the select statement, if in the select statement all(*) is mentioned they it will take the first column from the table

select Student_name,Mobile 
from 
dbo.student
order by 1 desc

Output

student records in descending  order by  column index
select *
from 
dbo.student
order by 1 desc

Output

student records in descending  order by column number

Sort a result set by multiple columns

In the below example, first, fetch the Student_name, Mobile from the table, and first records sort by Student_name then that result set to sort by Mobile column,

select Student_name,Mobile from 
dbo.student
order by Student_name,Mobile

result of the above query is

student records in order by multiple columns

Sort a result set by multiple columns and different orders

In the below example, sorted the records by desc and asc order, the first result set sorted by the descending order and that result set again to sort by ascending order

select Student_name,Mobile from 
dbo.student
order by Student_name desc,Mobile asc

Output:

student records in order by multiple columns ascending

Sort the records by using expression

In this example, we can use the LEN() function to sort the records,

LEN()- Used to calculate the length of the string

select Student_name from 
dbo.student
order by LEN(Student_name) 

Output:

student records in order by multiple columns

Need help?

Read this post again, if you have any confusion or else add your questions in Community

Tags: