Beide aktuellen Antworten ignorieren die Tatsache, dass order by verwendet wird und rownum in derselben Abfrage ist von Natur aus gefährlich. Es gibt absolut keine Garantie, dass Sie die gewünschten Daten erhalten. Wenn Sie die erste Zeile einer geordneten Abfrage möchten, müssen Sie das müssen Verwenden Sie eine Unterabfrage:
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
;
Sie können auch eine Funktion wie rank verwenden
um die Daten in der gewünschten Methode zu ordnen, obwohl Sie zwei created_on hatten Daten, die identisch waren, würden Sie mit 2 Werten mit rnk = 1 enden .
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
;