2012-05-29 14 views
11

मैं कुछ खास वाक्यविन्यास में आया, क्या आप इसका अर्थ समझने में मदद कर सकते हैं? धन्यवाद।पंक्ति संख्या()

SELECT ROW NUMBER() OVER (ORDER BY Product.ProductID) FROM Product; 

इसके अलावा, यह विफल हो जाता है। मुझे विशेष रूप से ROW NUMBER() OVER बिट में रूचि है। यह पहली बार है जब मैंने कभी भी कीवर्ड का सामना किया है।

अगर आपको पूरा उदाहरण चाहिए तो कृपया मुझे बताएं। मैंने स्पष्टता के लिए थोड़ा सा छोटा कर दिया।

+4

http://msdn.microsoft.com/en-us/library/ms186734.aspx –

उत्तर

9

ROW_NUMBER() फ़ंक्शन ord निर्धारित करने के लिए अधिक (द्वारा आदेश) अभिव्यक्ति की आवश्यकता है एर कि पंक्तियों की संख्या है। डिफ़ॉल्ट क्रम आरोही है लेकिन अवरोही का भी उपयोग किया जा सकता है। यह फ़ंक्शन विभिन्न प्रकार की चीजों के लिए उपयोगी है जैसे रिकॉर्ड्स के सेट के माध्यम से पुनरावृत्ति करते समय पंक्तियों का ट्रैक रखना, क्योंकि टी-एसक्यूएल टी-एसक्यूएल के बाहर एक कर्सर को पुनर्प्राप्त करने की अनुमति नहीं देता है। @ ट्यूनिमाइज़ फ़ैसपे सही है, आप _

+0

दोनों के लिए बहुत बहुत धन्यवाद! यह मजाकिया है क्योंकि जिस पुस्तक को मैं पढ़ रहा हूं वह कई उदाहरण हैं, हर बार अंडरस्कोर के बिना। मैं गुमराह था। मैं एक टाइपो समझ गया होता, लेकिन 3 में से एक? बहुत बहुत धन्यवाद। –

6

ध्यान रखें कि आपके ROW_NUMBER में अंडरस्कोर याद कर रहे हैं

SELECT ROW_NUMBER() OVER (ORDER BY Products.ProductID) FROM Products; 

क्या यह होता है कि इसे बाहर प्रिंट उत्पादों तालिका में प्रत्येक रिकॉर्ड के क्रम में वे पुनः प्राप्त किया गया है (जैसा कि ProductID द्वारा आदेश दिया) की पंक्ति संख्या है

e.g. 
RowNumber ProductName 
------------------------ 
1   Flower 
2   Bag 
3   Car 
...   ... 

मैं स्पष्टता के लिए उत्पाद का नाम स्तंभ जोड़ा

+0

वे पुनर्प्राप्त किए गए आदेश को ORDER द्वारा निर्धारित किया गया है- उत्पाद आईडी कॉलम इस मामले में एएससी आदेश। –

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