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