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
;