Entrambe le risposte attuali ignorano il fatto che usando order by
e rownum
nella stessa query è intrinsecamente pericoloso. Non vi è assolutamente alcuna garanzia che otterrete i dati desiderati. Se desideri la prima riga da una query ordinata, devi usa una sottoquery:
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
;
Puoi anche utilizzare una funzione come rank
per ordinare i dati nel metodo che desideri, anche se avevi due created_on
date identiche avresti ottenuto 2 valori 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
;