दोनों वर्तमान उत्तर इस तथ्य को अनदेखा करते हैं कि order by
. का उपयोग करना और rownum
एक ही प्रश्न में स्वाभाविक रूप से खतरनाक है। इस बात की कोई गारंटी नहीं है कि आपको वह डेटा मिलेगा जो आप चाहते हैं। यदि आप किसी आदेशित क्वेरी से पहली पंक्ति चाहते हैं तो आपको जरूरी उप-क्वेरी का उपयोग करें:
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
;
आप rank
जैसे फ़ंक्शन का भी उपयोग कर सकते हैं
अपनी इच्छित विधि में डेटा ऑर्डर करने के लिए, यद्यपि यदि आपके पास दो created_on
. थे तिथियां जो समान थीं आप rnk = 1
. के साथ 2 मानों के साथ समाप्त होंगे ।
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
;