Daniela, parte de nuestro staff, nos hizo el favor de redactar este enunciado porque controla a la perfección el tema.
Solución:
Ambas respuestas actuales ignoran el hecho de que usar order by
y rownum
en la misma consulta es inherentemente peligroso. No hay absolutamente ninguna garantía de que obtendrá los datos que desea. Si desea la primera fila de una consulta ordenada, deber usa una subconsulta:
insert into my_tbl ( col1, col2 )
select data, 'more data'
from ( select data
from fir_tabl
where id = 1
order by created_on desc )
where rownum = 1
;
También puede utilizar una función como rank
para ordenar los datos en el método que desee, aunque si tuviera dos created_on
fechas que eran idénticas terminaría con 2 valores con rnk = 1
.
insert into my_tbl ( col1, col2 )
select data, 'more data'
from ( select data
, rank() over ( order by created_on desc ) as rnk
from fir_tabl
where id = 1)
where rnk = 1
;
Finalizando este artículo puedes encontrar las aclaraciones de otros creadores, tú además puedes dejar el tuyo si lo crees conveniente.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)