Dúvida com SQL - rows ? to ?

PostgreSQL

12/02/2009

Bom dia, estou com a seguinte dúvida em como pegar uma determinada linha de uma consulta, ou seja
a minha tabela possui 3 regitros baseado em um determinado select:
2009-03-11
2008-07-22
2008-02-14

eu gostaria de pegar a 2ª data anterior q o select me retornar (2008-07-22).

No firebird eu uso: [b:107028fc7d]ORDER BY DATAATEND DESC ROWS 2 TO 2[/b:107028fc7d] se quiser a segunda data [b:107028fc7d]ROWS 2 TO 2[/b:107028fc7d] (2008-07-22)
mas como estou migrando o meu sistema para o postgreSQL ele não aceita esse SQL, e dai tentei usar o LIMIT e OFFSET, mas no caso do OFFSET ocorre um problema se eu quiser pegar por exemplo a 2ª data anterior ele me retornará as linhas:
[b:107028fc7d]LIMIT 2 OFFSET 1[/b:107028fc7d] :
2008-07-22
2008-02-14
ou então [b:107028fc7d]LIMIT 2 OFFSET 2[/b:107028fc7d] :
2008-02-14

dai a data de 2008-07-22 que para mim interessa eu não estou conseguindo pegar

se alguem puder dar uma dica de como ficaria essa sintaxe,
Atenciosamente,


Andersonpalhano

Andersonpalhano

Curtidas 0

Respostas

Jair Bg

Jair Bg

12/02/2009

Boa tarde, você escolheu o uso do OFFSET e LIMIT você quer pegar os dados do registro anterior Ok?,
no caso, para pegar os dados apenas da segunda linha o LIMIT será ´1´ (uma única linha), e o OFFSET
será ´1´ (setado ao segundo registro da ordenação).
PS: lembre-se da ´ordenação´ (ORDER BY data DESC) para a consulta que o registro será o anterior...
EX: SELECT data FROM tabela ORDER BY data DESC LIMIT 1 OFFSET 1

Retorne caso duvidas...


GOSTEI 0
Andersonpalhano

Andersonpalhano

12/02/2009

Olá Jair, mto obrigado, agora entendi, estava com o conceito errado do LIMIT E OFFSET, vlw, abraço.


GOSTEI 0
POSTAR