2012-02-05 11 views
21

मैं कुछ पेजिंग कर रहा हूं, और मुझे कुछ प्रश्न बनाने और परिणाम स्वरूप परिभाषित स्लाइसिंग प्राप्त करने की आवश्यकता है। उदाहरण के लिए: मैं सीमा 20n में सभी "टॉप" पंक्तियों प्राप्त करने की आवश्यकता < एक्स < 40N आदिकिसी तालिका से शीर्ष एन पंक्तियों का चयन करें

SELECT * FROM Reflow 
WHERE ReflowProcessID = somenumber 
ORDER BY ID DESC; 

और अब मैं अपने स्तंभ कहा जाता है आईडी के आधार पर रपट बनाने की जरूरत है।

कोई सुझाव कैसे करें? मुझे mysql, mssql, और oracle पर मेरी क्वेरी चलाने की आवश्यकता है।

+2

'LIMIT' क्लॉज देखें http://dev.mysql.com/doc/refman/5.1/en/select.html –

+0

डाउनवोट क्यों? उत्तर में अपनी टिप्पणी क्यों न दें? कितने सारे सवाल। – Matthias

+1

मुझे काफी यकीन है कि आपको कुछ भी नहीं मिलेगा जो 3 में काम करता है। आपको ओरेकल में 'राउनम' का उपयोग करना होगा। – Ben

उत्तर

36

अपने पृष्ठ आकार मान लिया जाये कि 20 रिकॉर्ड है, और आप पेज नंबर 2 मिल करना चाहते हैं, यहाँ तुम कैसे करते हैं:

एसक्यूएल सर्वर, ओरेकल:

SELECT * -- <-- pick any columns here from your table, if you wanna exclude the RowNumber 
FROM (SELECT ROW_NUMBER OVER(ORDER BY ID DESC) RowNumber, * 
     FROM Reflow 
     WHERE ReflowProcessID = somenumber) t 
WHERE RowNumber >= 20 AND RowNumber <= 40  

MySQL:

SELECT * 
FROM Reflow 
WHERE ReflowProcessID = somenumber 
ORDER BY ID DESC 
LIMIT 20 OFFSET 20 
15

MySQL में, आप प्राप्त कर सकते हैं 10 पंक्तियों पंक्ति 20 से शुरू का उपयोग कर:

SELECT * FROM Reflow 
WHERE ReflowProcessID = somenumber 
ORDER BY ID DESC 
LIMIT 10 OFFSET 20 --Equivalent to LIMIT 20, 10 
संबंधित मुद्दे

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