Cláusulas OFFSET e FETCH no SELECT
As cláusulas OFFSET e FETCH foram incorporadas no SQL Server 2012, e fornece uma opção para gerar a paginação do resultado de uma query. Para utilizá-los, a query deve, necessariamente, ter a cláusula ORDER BY. Usando o BD AdventureWorks2014 como modelo (disponível no OxxyDev05), vamos exibir o conteúdo da tabela HumanResources.Department, organizados pelo Id. A tabela tem 16 registros:
Neste comando, vamos acrescentar a cláusula OFFSET. Observe que o resultado pula as cinco primeiras linhas e retorna as linhas restantes:
Agora vamos incluir o FETCH:
Ok, Ok! Se usar o TOP 10, o resultado seria o mesmo...
Então vamos alterar o valor de OFFSET para 4. Agora, o resultado pula as 4 primeiras linhas e exibe as 10 seguintes:
Para facilitar o uso de OFFSET / FETCH na aplicação, podemos utilizar variáveis para informar a página e o número de linhas para exibir: