Retornando um subconjunto do conjunto de resultados utilizando ROW_NUMBER
Informática
01/09/2008
Por: Marcelo Yamazaki
Retornando um subconjunto do conjunto de resultados utilizando a função row_number.
A função ROW_NUMBER, disponível a partir do sql server 2005, retorna o número seqüencial de cada linha sobre um conjunto de resultados, podendo ser definido partições, onde a cada primeira linha de cada partição a seqüência inicia-se em 1.
Podemos utilizar a função onde se faz necessário retornar subconjuntos de um conjunto de resultados, como por exemplo, em consultas para páginas web que utilizam paginação.
Sintaxe:
ROW_NUMBER ( ) OVER ( [ <partition_by_clause> ] <order_by_clause> )
<partition_by_clause>
Divide o conjunto de resultados produzido pela cláusula FROM.
<order_by_clause>
Determina a ordem na qual o valor de ROW_NUMBER é atribuído às linhas de uma partição.
Ex: Executando a consulta abaixo, utilizando o banco de dados Northwind:
select row_number() over (order by productid desc) as Numero, productname
from products
Teremos:
Retornando um subconjunto do conjunto de resultados.
Exemplo1:
with result as
(
select row_number() over (order by productid desc) as Numero, productname
from products
)
select *
from result
where numero between 20 and 30
Exemplo2:
select top 11 *
from
(
select row_number() over (order by productid desc) as Numero, productname
from products
) as result
where numero >= 20
Esta apresentação reflete a opinião pessoal do autor sobre o tema, podendo não refletir a posição oficial do Portal Educação.
por Colunista Portal - Educação
O Portal Educação possui uma equipe focada no trabalho de curadoria de conteúdo. Artigos em diversas áreas do conhecimento são produzidos e disponibilizados para profissionais, acadêmicos e interessados em adquirir conhecimento qualificado. O departamento de Conteúdo e Comunicação leva ao leitor informações de alto nível, recebidas e publicadas de colunistas externos e internos.
UOL CURSOS TECNOLOGIA EDUCACIONAL LTDA, com sede na cidade de São Paulo, SP, na Alameda Barão de Limeira, 425, 7º andar - Santa Cecília CEP 01202-001 CNPJ: 17.543.049/0001-93