2009-04-22 8 views
5

जब ओरेकल समर्थन "टॉप" शुरू किया:ओरेकल ने "शीर्ष" का समर्थन कब शुरू किया: शीर्ष का चयन करें? उत्पाद से p2_.PRODUCT_ID?

select top ? p2_.PRODUCT_ID from PRODUCT? 
+0

आपको लगता है कि ओरेकल ने "शीर्ष" का समर्थन करना क्यों शुरू किया? –

+0

मुझे मारता है। यह थोड़ी देर पहले था। सिंटैक्स से निर्णय हाइबरनेट द्वारा उत्पन्न किया गया था। हो सकता है कि बोली बोली हो। – jon077

उत्तर

13

मुझे यकीन नहीं है कि ओरेकल के पास कभी भी शीर्ष कार्य था। आप एक टॉप-एन क्वेरी का उपयोग करना चाहते हैं।

उदाहरण के लिए:

select * 
    from (SELECT * 
      FROM foo 
      where foo_id=[number] 
     order by foo_id desc) 
where rownum <= 3 

यह आपको शीर्ष तीन परिणाम मिलेंगे (क्योंकि मैं उप क्वेरी में desc द्वारा आदेश)

+1

कीवर्ड 'rownum' डेटाबेस में भौतिक पंक्ति संख्या है, यही कारण है कि आपको इसे पहले सॉर्ट करना होगा, फिर मानदंड लागू करें। –

4

ओरेकल टॉप कीवर्ड का समर्थन नहीं करता। क्वेरी

SELECT TOP 10 product_id 
    FROM product 

में सिंटेक्स त्रुटि उत्पन्न होगा क्योंकि शीर्ष 10 खंड, मान्यता प्राप्त नहीं है, कम से कम ओरेकल 11.1 (वर्तमान उत्पादन विज्ञप्ति) के माध्यम से।

1

TOP एसक्यूएल सर्वर नहीं ओरेकल द्वारा द्वारा समर्थित है। FIRST_ROWS हिट से भ्रमित न हों जो कि एफआईआर पंक्तियों के लिए सबसे अच्छी योजना को पुनर्प्राप्त करने के लिए है, जो कई परिणामों के बाद नहीं रुकता है।

जैसा कि अन्य ने कहा, ओरेकल समाधान ROWNUM छद्मकोलम के साथ खेलना है।

संबंधित मुद्दे