[firebase-br] Ajuda na consulta

Alysson Gonçalves de Azevedo agalysson em gmail.com
Seg Set 20 10:53:27 -03 2010


Bem, para trazer N registros, use select first N * from...
no caso, para trazer 10 registros, select first 10 * from...

só que skip não fucionará não...
pois ele não quer pular um determinado numero de registros e sim 10
registros antes e 10 depois...

nesse caso, acredito que um union sera necessario...
algo assim:

select codigo, nome, valor from (
  select first 10 codigo, nome, valor from tabela where codigo < :codigo
order by codigo desc
  union
  select codigo, nome, valor from tabela where codigo = :codigo
  union
  select first 11 codigo, nome, valor from tabela where codigo > :codigo
order by codigo
) order by codigo

vc pode fazer essa query apenas com 2 selects, mas para facilitar o
entendimento, fiz com 3...
talvez vc ache solução melhor que essa, mas tente começar com algo assim

Alysson Gonçalves de Azevedo
(11) 8491-7730

(\(''^_^ )/)

"Pobre vive dizendo que não tem nada, mas quando vem a enchente, ele sai
gritando: -Perdi tudo!!!"




Em 20 de setembro de 2010 10:30, Igor Alves <igor.alvez em gmail.com> escreveu:

> Gostaria de uma ajuda com o seguinte problema:
> No retorno da consulta eu preciso selecionar os 'N' registro anteriores e
> os
> 'N' registros posteriores a uma determinada posição, por exemplo a consulta
> volte 100 linha de dados, e eu informo a linha 11 e quero que retorne os
> dados da linha 1 até a linha 10 e da linha 12 até a 21 (caso N seja 10).
>
> No Oracle eu usaria a função ROWID, porém no firebird(versão 1.5 e 2.1.3)
> eu
> não sei qual é a função similar, alguém poderia me ajudar?
>
> Igor Alves
> Analista do Sistema RH - MB Solutions
> Pós-Graduando em Banco de Dados com Ênfase em Alta Disponibilidade -
> UNIFACS
> Tel: (71)8812-8670
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista