Offset in SQL
Let us consider a situation where we need to display only a specific number of rows within a given range. In this case, we might have to remove a specific set of rows from the beginning and display them till the upper bound of the range specified as per requirement. In such scenarios, we use the OFFSET command in SQL.
What is Offset in SQL?
Offset in SQL is used to eliminate a set of records from a given table in order to retrieve a set of records according to the requirement of the database.
Basically, it is used to find a starting point to display a set of rows as a final output. By using OFFSET, we discard the desired number of rows from the beginning of the table till the number mentioned with the OFFSET command.
How to Use Offset in SQL?
OFFSET in SQL is generally used with the ORDER BY clause with a value greater than or equal to zero.
Syntax using OFFSET:
In conjunction with the OFFSET command, we use the FETCH to retrieve the required set of rows. FETCH mostly returns the number of rows and completely depends on the OFFSET command.
Syntax using OFFSET and FETCH:
Example of OFFSET in SQL Server
Let's look at a few examples to learn how to use OFFSET and FETCH:
Employees table:
Emp_ID | Emp_name | Emp_gender | Emp_age |
---|---|---|---|
101 | Amar Rathore | Male | 27 |
102 | Dimple Khanna | Female | 28 |
103 | Mayuri Chatterji | Female | 27 |
104 | Karthik Padman | Male | 30 |
105 | Aisha Khan | Female | 29 |
106 | Dianna | Female | 27 |
107 | Jaspreet | Male | 30 |
1. Display the contents of the table, removing the first row
Query:
Output:
Emp_name | Emp_gender |
---|---|
Mayuri Chatterji | Female |
Dianna | Female |
Dimple Khanna | Female |
Aisha Khan | Female |
Karthik Padman | Male |
Jaspreet | Male |
2. Display the table excluding the first five rows.
Output:
Emp_name | Emp_gender |
---|---|
Karthik Padman | Male |
Jaspreet | Male |
3. Display the 6th and 7th row after using offset
Output:
Emp_name | Emp_gender |
---|---|
Karthik Padman | Male |
Jaspreet | Male |
Learn more
To learn more about SQL, Click here.
Conclusion
- We learned that OFFSET is generally used to discard rows from the beginning of the table.
- It is used along with the ORDER BY clause.
- To return a specific number of rows, the FETCHcommand is used.
- FETCH is used along with OFFSET and holds no meaning otherwise.