मैं इस तरह कुछ expresion करने के लिए देख रहा हूँएक का चयन बयान के साथ, एक विशिष्ट श्रेणी के बीच पंक्तियों लौटें
SELECT TOP 10 columName FROM tableName
(एसक्यूएल सर्वर 2008 का उपयोग कर) लेकिन बजाय इस बात का मैं 10 और 20 के बीच और मूल्यों की आवश्यकता मुझे आश्चर्य है कि केवल एक ही चयन कथन का उपयोग करके ऐसा करने का कोई तरीका है।
उदाहरण के लिए इस बेकार है:
SELECT columName FROM
(SELECT ROW_NUMBER() OVER(ORDER BY someId) AS RowNum, * FROM tableName) AS alias
WHERE RowNum BETWEEN 10 AND 20
क्योंकि चयन के अंदर कोष्ठक पहले से ही सभी परिणाम लौटा रहा है, और मुझे लगता है कि से बचने के लिए, प्रदर्शन की वजह से देख रहा हूँ।
SQL सर्वर 2012 में अपग्रेड करना आम तौर पर "आपकी अंगुलियों को स्नैप नहीं" विकल्प नहीं है। और मैं तर्क दूंगा कि * SQL सर्वर के पुराने संस्करणों में बेहतर उत्तर हैं। उदाहरण के लिए, पंक्ति संख्याओं को लागू करते समय केवल * कुंजी * मानों को पुनर्प्राप्त क्यों न करें, फिर तालिका के साथ उस आउटपुट (जो * अधिक * स्किनर होगा) में शामिल हों? –
@AaronBertrand, आप सही हैं।मैं पूरी तरह से सहमत हूं कि उन्नयन आसान नहीं है, लेकिन यदि ओपी इस कथन का बहुत उपयोग कर रहा है और वास्तव में प्रदर्शन के बारे में परवाह करता है, तो यह कुछ ऐसा है जिसे वह ध्यान में रख सकता है। – RAS