Foi falado na aula, que não existe no Oracle consulta que informe somente as ultimas linhas com rownum, somente com subconsultas.
Eu conheço uma função que seria, FETCH Last N row only, é considerado uma subconsulta?
Foi falado na aula, que não existe no Oracle consulta que informe somente as ultimas linhas com rownum, somente com subconsultas.
Eu conheço uma função que seria, FETCH Last N row only, é considerado uma subconsulta?
Oi, Aleff! Tudo bem?
Peço desculpas por demorar a te responder.
A função FETCH
não é considerada uma subconsulta, mas sim uma cláusula que pode ser utilizada em conjunto com a instrução SELECT com saída ordenada por ORDER BY
para limitar o número de linhas retornadas.
Por exemplo, para obter somente as últimas 10 linhas de uma tabela, a consulta ficaria assim:
SELECT *
FROM (
SELECT *
FROM tabela
ORDER BY coluna DESC
)
WHERE ROWNUM <= 10;
Já com a cláusula FETCH, a consulta ficaria assim:
SELECT *
FROM tabela
ORDER BY coluna DESC
FETCH LAST 10 ROWS ONLY;
Entretanto, a cláusula FETCH
infelizmente não está disponível para a versão Express Edition da Oracle. Apenas pode ser utilizada nas versões 12c e posteriores.
No XE, podemos utilizar o FETCH FIRST N ROWS ONLY
para receber apenas as primeiras linhas de uma consulta.
Espero ter ajudado. Bons estudos!