Última linha de um resultado de SQL

Boa tarde,

Bem, este tópico aqui não tem nada a ver com java mesmo hehe, tem a ver somente com SQL, ou melhor, MySQL…
Preciso que na SQL não retorne a última linha, exemplo: seleciono e o retorno seja, 0, 1, 2, 3, 4. quero que o 4 não mostre, só retorne 0,1,2,3.

Mas o detalhe isso em SQL, sei fazer as paradas em java ai…

Algo assim:

SELECT numero FROM tb_numeros LIMIT 0, NR_LINHAS - 1

Pensando em Java, tratando isso é muito simples, na hora de fazer o loop para buscar os dados, coloco o tamanho -1, mas quero saber se é possivel direto no SQL?

Obrigado!

Cara, você tem certeza de que quer resolver isso com SQL?

Mais elegante dentro do banco seria colocar a solução numa SP.

Mas segue uma aberração que pode ser feita no Oracle:

Abraços.

[quote=celso.martins]Cara, você tem certeza de que quer resolver isso com SQL?

Mais elegante dentro do banco seria colocar a solução numa SP.

Mas segue uma aberração que pode ser feita no Oracle:

Abraços.[/quote]

Eu sei que é uma aberração hehe, mas era mais por curiosidades mesmo, o que seria este rownum?

Como eu disse eu poderia fazer com um loop pegando tudo, menos o última linha, que seria algo mais simples.
Exemplo:

for(int i = 0; i < NUM LINHAS-1; i++){ // linha i }

Nunca mechi com oracle, essa rownum é uma variavel dele? e no MySQL como eu poderia fazer?

obrigado!

rownum é só para Oracle, usado p/ obter o número da linha. Procure na documentação do MySQL o equivalente a ele.

Esse pergunta é meio antiga, mais creio que ainda possam existir pessoas com esta mesma dúvida.

Select * from TABELA WHERE ID = (SELECT MAX(ID - 1) FROM TABELA)

A consulta acima lhe retornará o último registro - 1

Para resolver o seu caso basta adaptar conforme abaixo

SELECT * FROM TABELA WHERE ID NOT IN(SELECT MAX(ID) FROM TABELA)

A consulta acima retorna todos, exceto o último registro.

Espero ter ajudado.

Atenciosamente,

Luan Neres