2012-08-15 9 views
11

यह मैं सिर्फ एक पंक्ति (पहले एक) देता है:ऑर्डर करने के बाद परिणाम सेट में मुझे केवल पहली पंक्ति कैसे मिल सकती है?

SELECT BLA 
FROM BLA 
WHERE BLA 
AND ROWNUM < 2 

हालांकि, मैं हाल ही में तारीख वैल चाहते हैं; - जाहिरा तौर पर से पहले "केवल पहली पंक्ति का चयन करें" तर्क आग

SELECT BLA 
FROM BLA 
WHERE BLA 
ORDER BY FINALDATE DESC 

जब मैं दो आंशिक जीत मिश्रण करने की कोशिश है, हालांकि, यह काम नहीं करता: मैं इस तरह से कर सकते हैं कि पहली पंक्ति द्वारा आदेश, और उसके बाद आदेश को बाद में अनदेखा किया जाता है।

+0

क्यों आप बस एक समूह द्वारा (आप पहली पंक्ति मिल जाएगा) का उपयोग नहीं करते? – GRB73

उत्तर

14

यह प्रश्न How do I limit the number of rows returned by an Oracle query after ordering? के समान है।

यह एक ऑरैक डेटाबेस पर एक MySQL सीमा को कार्यान्वित करने के तरीके के बारे में बात करता है जो आपके टैग और पोस्ट का निर्धारण कर रहा है जो आप उपयोग कर रहे हैं।

प्रासंगिक अनुभाग है:

select * 
from 
    (select * 
    from emp 
    order by sal desc) 
    where ROWNUM <= 5; 
1

आप कर सकते हैं घोंसला आपके प्रश्नों:

select * from (
    select bla 
    from bla 
    where bla 
    order by finaldate desc 
) 
where rownum < 2 
15

12C में, यहाँ नया तरीका है:

select bla 
    from bla 
where bla 
order by finaldate desc 
fetch first 1 rows only; 

कि कैसे अच्छा है!

+4

मेरा काम 11 जी * मुझे रोना * WHYYYYYYY का उपयोग करता है –

0

एक वैकल्पिक तरीका:

SELECT ... 
FROM bla 
WHERE finalDate = (SELECT MAX(finalDate) FROM bla) AND 
     rownum = 1 
संबंधित मुद्दे