Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle SQL में दिनांक के अनुसार शीर्ष 1 का चयन और आदेश कैसे करें?

... where rownum = 1 order by trans_date desc

यह मनमाने ढंग से चुने गए एक रिकॉर्ड का चयन करता है (where rownum = 1 ) और फिर इस एक रिकॉर्ड को सॉर्ट करें (order by trans_date desc )।

जैसा कि इवान द्वारा दिखाया गया है, आप एक सबक्वेरी का उपयोग कर सकते हैं जहां आप रिकॉर्ड ऑर्डर करते हैं और फिर पहला रिकॉर्ड where rownum = 1 के साथ रखते हैं। बाहरी क्वेरी में। हालांकि, यह अत्यंत Oracle-विशिष्ट है और SQL मानक का उल्लंघन करता है जहां एक सबक्वेरी परिणाम को अनियंत्रित माना जाता है (अर्थात खंड द्वारा क्रम को DBMS द्वारा अनदेखा किया जा सकता है)।

तो बेहतर है कि मानक समाधान के साथ जाएं। Oracle 12c के अनुसार:

select * 
from table_name 
order by trans_date desc
fetch first 1 row only;

पुराने संस्करणों में:

select *
from
(
  select t.*, row_number() over (order by trans_date desc) as rn
  from table_name t
)
where rn = 1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या मैं सीएलओबी कॉलम में बाइनरी स्ट्रिंग स्टोर कर सकता हूं?

  2. SQL सर्वर से Oracle में बार-बार डेटा ले जाना

  3. Oracle PL/SQL के लिए एक अच्छा संदर्भ

  4. संघ और CLOB फ़ील्ड के साथ चयन का उपयोग करते समय त्रुटि ORA-00932

  5. Oracle में FLOOR () फ़ंक्शन