दिलचस्प पोस्ट
मैं आईडी का उपयोग कर एकाधिक SQL तालिकाओं में कैसे शामिल हो सकता हूं? _t (अंडरस्कोर-टी) द्वारा किस प्रकार का अनुसरण किया जाता है? एनजी-मॉडल, एनजी-दोहराना, और इनपुट के साथ कठिनाई START_STICKY Android KitKat पर काम नहीं करता MySQL क्वेरी लॉग को कैसे सक्षम करें? मैं एंड्रॉइड डिवाइस से एपीके फाइल कैसे प्राप्त करूं? एएसपी.नेट पथ में टिल्ड (~) का उपयोग जावास्क्रिप्ट में चयनित टेक्स्ट इवेंट ट्रिगर Android 2.0 पर संपर्क कैसे पढ़ा जाए रसीला प्रमाणीकरण मैं गीट प्रबंधित परियोजना में सभी स्थानीय परिवर्तनों को पिछले स्थिति में कैसे वापस कर सकता हूं? मैं आईआईएस के लिए आईआईएस को एचटीएमएल 5 मोड में एन्जिलरजेएस एप्लीकेशन में लिखने के लिए कैसे कॉन्फ़िगर करूं? डॉकर में "एक्सपोज़" और "प्रकाशित" के बीच का अंतर जांचें कि क्या एक चर जावास्क्रिप्ट में एक स्ट्रिंग है एनजी 2-बूटस्ट्रैप बाल घटक के रूप में मॉडल / छुपाएं

SQL सर्वर के लिए MySQL LIMIT खंड समकक्ष

मैं एसक्यूएल सर्वर के लिए सीमित सीमा के विकल्पों पर बहुत कुछ पढ़ रहा हूं। यह इतना निराशाजनक है कि वे अभी भी इसे अनुकूलित करने से इनकार करते हैं। वैसे भी, मैं वास्तव में इस के आसपास मेरे सिर पाने के लिए सक्षम नहीं किया गया है। मैं कन्वर्ट करने की कोशिश कर रहा हूँ यह क्वेरी यह है …

SELECT ID, Name, Price, Image FROM Products ORDER BY ID ASC LIMIT $start_from, $items_on_page 

किसी भी सहायता की बहुत सराहना की जाएगी, धन्यवाद

वेब के समाधान से एकत्रित समाधान "SQL सर्वर के लिए MySQL LIMIT खंड समकक्ष"

SQL सर्वर 2012 में, एएनएसआई मानक OFFSET / FETCH वाक्यविन्यास के लिए समर्थन है। मैंने इस बारे में ब्लॉग किया था और यह आधिकारिक डॉक्टर है (यह ORDER BY करने का विस्तार है) आपकी सिंटैक्स SQL ​​Server 2012 के लिए परिवर्तित होगा:

 SELECT ID, Name, Price, Image FROM Products ORDER BY ID ASC OFFSET (@start_from - 1) ROWS -- not sure if you need -1 -- because I don't know how you calculated @start_from FETCH NEXT @items_on_page ROWS ONLY; 

इससे पहले, आपको ROW_NUMBER() विधि सहित विभिन्न कार्यक्षेत्रों का उपयोग करने की आवश्यकता है। इस आलेख और फॉलो-ऑन चर्चा देखें । यदि आप SQL सर्वर 2012 पर नहीं हैं, तो आप मानक सिंटैक्स या MySQL के गैर-मानक LIMIT उपयोग नहीं कर सकते हैं, लेकिन आप एक अधिक वर्बोस समाधान का उपयोग कर सकते हैं जैसे कि:

 ;WITH o AS ( SELECT TOP ((@start_from - 1) + @items_on_page) -- again, not sure if you need -1 because I -- don't know how you calculated @start_from RowNum = ROW_NUMBER() OVER (ORDER BY ID ASC) /* , other columns */ FROM Products ) SELECT RowNum /* , other columns */ FROM o WHERE RowNum >= @start_from ORDER BY RowNum; 

इस बिल्ली को त्वचा के कई अन्य तरीके हैं, यह सबसे अधिक कुशल होने की संभावना नहीं है, लेकिन वाक्य-रचना के अनुसार संभवतः सरल है मैं सुझाव देता हूं कि मैंने उन लिंकों की समीक्षा की जो मैंने पोस्ट कीं और साथ ही डुप्लिकेट सुझावों ने प्रश्न के उत्तर में टिप्पणी की।

एसक्यूएल सर्वर 2005 और 2008 के लिए यह एक उदाहरण क्वेरी है, जो कि अंतिम तालिका से क्रमबद्ध रिपोर्ट तालिका से 11 से 20 पंक्तियों को चुनने के लिए है।

 SELECT a.* FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY LastName) as row FROM Report) a WHERE a.row > 10 and a.row <= 20 

इसे इस्तेमाल करे:

 SELECT TOP $items_on_page ID, Name, Price, Image FROM (SELECT TOP $start_from + $items_on_page - 1 * FROM Products ORDER BY ID) as T ORDER BY ID DESC 

संपादित करें: स्पष्टीकरण-

कोई subquery के आसपास नहीं मिल रहा है, लेकिन यह एक सुरुचिपूर्ण समाधान है कहें कि आप प्रति पृष्ठ 10 आइटम चाहते हैं, 5 वीं पंक्ति से शुरू करते हैं, यह आपको शीर्ष 14 पंक्तियों की निम्न 10 पंक्तियां देगी। अनिवार्य रूप से LIMIT 5,10

आप पंक्ति संख्या का उपयोग कर सकते हैं: पिछले विवरण से प्रभावित पंक्तियों की संख्या लौटाता है। जब आप डॉन, आप rowcont रीसेट करें

 SET ROWCOUNT 100 

या आप TOP क्वेरी का उपयोग करने की कोशिश कर सकते हैं

 SELECT TOP 100 * FROM Sometable ORDER BY somecolumn 

यदि आप एप्लिकेशन को राज्य के TOP items_on_page को स्टोर करने की अनुमति देते हैं, तो आप यह केवल TOP items_on_page का उपयोग कर सकते हैं। आप जो करना चाहते हैं, वह उस अंतिम आइटम की आईडी को संचयित करना है जिसे आपने पुनः प्राप्त किया था, और प्रत्येक बाद की क्वेरी जोड़ने AND ID > [last ID] । तो आप items_on_page बैचों में आइटम प्राप्त करते हैं, जहां से आप हर बार छोड़ देते हैं।