QUICK TIPS: First e Skip no Firebird – Selecionando N registros em uma consulta

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (5)  (0)

Olá pessoal, nesta quick tip falaremos sobre as funções First e Skip do Firebird.


     Olá pessoal, nesta quick tip falaremos sobre as funções First e Skip do Firebird.

     Aproveitando a oportunidade do trocadilho, vamos falar primeiro do first. Esta função nos permite retornar apenas os N primeiros registros de uma consulta. Por exemplo, no seguinte select, retornaremos todos os registros da tabela.


 


     Até aqui, tudo normal, um select para trazer todos os registros. Porém se desejarmos trazer apenas os 5 primeiros registros teríamos que usar o first para indicar isso. Dessa forma, nossa consulta ficaria assim:


     E teríamos consequentemente o seguinte resultado.


     Como podem ver é bem simples usar o first. Muita gente, intuitivamente, após usar o first, tenta usar o “last” para pegar os N últimos registros de uma consulta, porém o “last” não existe. Para pegar os N últimos registros de uma consulta temos que combinar o first com o order by, dessa forma, para pegarmos os últimos 5 registros de uma consulta, teríamos o seguinte select com o seguinte resultado:


     Como podemos observar, conseguimos dessa forma, com order by desc, simular um comando “last”, pegando os N últimos registros de uma consulta.

     Como podemos ver até aqui, conseguimos pegar do primeiro registro até o quinto, do décimo segundo até o último, mas e se quisermos pegar do sexto ao décimo segundo, como fazemos ?

     Utilizamos o skip. O skip, em uma tradução livre significa “pular” ou “saltar”, e é exatamente isso que ele faz, ele nos permite “pular” N registros para depois pegar os N primeiros.

     Vejam o exemplo abaixo:




     No exemplo acima, podemos observar que conseguimos atingir nosso objetivo, pegar do registro 6 ao 12, ou seja, deixando de fora da consulta os registros 1 ao 5 e 13 ao 16. O que o Firebird fez foi, pular os primeiros 7 registros da consulta, e pegar os 5 primeiros a partir do 8º registro, com isso, obtivemos o resultado observado.

     Eu uso essas duas funções constantemente, o skip por exemplo, é extremamente interessante quando se precisa extrair dados por partes, ou dividir uma consulta para processamento em paralelo por exemplo.

     Bom, é isso aí pessoal, espero que tenham gostado. Até a próxima.

 

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?