Em um artigo anterior abordei o uso de LINHAS ANTERIORES e SEGUINTES da cláusula. Para este exemplo eu vou usar o mesmo banco de dados e tabelas que eu criei no exemplo anterior para mostrar linhas sem limites, tanto precedendo e seguindo.,

uma das novas funcionalidades disponíveis no TSQL no SQL Server 2012 é as linhas sem restrições anteriores e as linhas sem restrições seguintes opções. A opção não limitada disponível ao usar as opções anteriores e seguintes. Aqui está como eles funcionam …

linhas sem limites anteriores a

-- ROWS UNBOUNDED PRECEDINGselect Year, DepartmentID, Revenue, min(Revenue) OVER (PARTITION by DepartmentID ORDER BY ROWS UNBOUNDED PRECEDING) as MinRevenueToDatefrom REVENUEorder by departmentID, year;

neste exemplo, o Minrevenuetodato lista a receita mais baixa para esta linha e todas as linhas anteriores ordenadas por data no ID do Departamento actual.

Você pode ver que a linha 1 define o Minrevenuetodato para 10030, e não muda até a linha 7 com um ano de receita mais baixa.,

em seguida, a linha 16 começa de novo para um novo departamento com a menor receita corrente até à data. Em seguida, a linha 21 reinicia para um número de receita menor.

LINHAS UNBOUNDED SEGUINTE

Agora, para o exemplo de UNBOUNDED SEGUINTE:

-- ROWS UNBOUNDED FOLLOWINGselect Year, DepartmentID, Revenue, min(Revenue) OVER (PARTITION by DepartmentID ORDER BY ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) as MinRevenueBeyondfrom REVENUEorder by departmentID, year;

, Onde você pode ver que o min(Receitas) é calculado sobre todas as linhas a partir da linha atual para o fim do jogo particionada por departmentID.,

a opção ilimitada é muito útil para determinar um cálculo desde o início de um conjunto até à linha actual, ou desde a linha actual até ao fim de um conjunto ou grupo.

tenha em mente que este recurso foi introduzido no SQL Server 2012, e não está disponível em edições anteriores.

ligações relacionadas

  • SQL Query Training
  • CTE Data Paging
  • OVER Clause with ROWS and RANGE