Consultar ultimos 10 registros de uma tabela

Boa tarde galera,
alguém sabe uma forma de pesquisar os ultimos dez registros de uma tabela de forma a não utilizar muitos selects, pois preciso desempenho.
E não sei a quantia de registros na tabela.
Obrigado e abraço.

usa a cláusula ORDER juntamente com a clausula LIMIT

Depende da base de dados e da coluna que você quer usar para ordenação.

Se for Oracle, utilize a pseudo coluna rownum:

SELECT rownum as num_linha, col1, --coluna da ordenacao col2, ... FROM tabela WHERE num_linha < 10 --nao sei se a contagem começa de 0 ou 1. Se for de 1, utilizar <=10 ORDER BY col1 DESC --utilize o DESC, assim voce nao pega os 10 primeiros, mas sim os 10 ultimos.

Se for indispensavel que o resultado venha corretamente ordenado, existe um “workaround” (termo politicamente correto para gambiarra 8) ):

SELECT * FROM (<o select anterior>) AS outro_select ORDER BY outro_select.col1 ASC

O MS SQL Server também tem algo parecido com o rownum, a função rank(), mas nao lembro exatamente como funciona. Imagino que outras bases tenham algo parecido, basta dar um search no Google (ex. MySQL rownum)

Infelizmente, é o tipo de coisa sem solução padrão, depende do BD…

Espero ter ajudado

:slight_smile:
Valeu!!
Vou testar aqui.