2010-07-27 14 views
6

में पंक्ति संख्या शामिल करें मुझे लगता है कि SQL सर्वर में प्रत्येक पंक्ति को एक अद्वितीय संख्या दी जाती है। मैं अपने SQL क्वेरी परिणामों में इसे कैसे शामिल कर सकता हूं?क्वेरी परिणाम (SQL सर्वर)

+0

जहाँ तक मुझे पता है, वहाँ कोई अद्वितीय संख्या, बस प्राथमिक कुंजी है कि आप की घोषणा की है। – Hinek

+0

आम तौर पर तालिका में पहला फ़ील्ड - संभवतः 'आईडी' या ऐसा कुछ नाम - प्राथमिक कुंजी है, जो आम तौर पर एक पूर्णांक होता है जो प्रत्येक नई लाइन के लिए 1 से बढ़ता है ... इसलिए यह पंक्ति-संख्या की तरह है। लेकिन हमें यह जानना होगा कि तालिका कैसे आयोजित की जाती है यह कहने के लिए कि कोई आईडी फ़ील्ड है और यदि ऐसा है, तो इसे कैसे पुनर्प्राप्त करें। – ewall

उत्तर

22

यदि आप कोई क्वेरी चलाते समय प्रबंधन स्टूडियो द्वारा प्रदान की गई पंक्ति संख्या का जिक्र कर रहे हैं, तो ऐसा करने का कोई तरीका नहीं है क्योंकि यह वास्तव में मौजूद नहीं है। प्रबंधन स्टूडियो उस फ्लाई पर उत्पन्न करता है। यदि आप SQL Server 2005 या बाद में उपयोग कर रहे हैं, तो आप ROW_NUMBER रैंकिंग फ़ंक्शन का उपयोग कर अनुक्रमिक संख्या को फिर से बना सकते हैं। ध्यान दें कि आपको कभी भी मानना ​​नहीं चाहिए कि डेटाबेस पंक्तियों को एक निर्दिष्ट क्रम में वापस कर देगा जबतक कि आप ऑर्डर बाय स्टेटमेंट शामिल नहीं करते। तो आपकी क्वेरी लग सकता है जैसे:

Select .... 
    , Row_Number() Over (Order By T.SomeColumn) As Num 
From Table As T 
Order By T.SomeColumn 

से अधिक खंड में आदेशानुसार अनुक्रमिक संख्या बनाने के लिए निर्धारित करने के लिए प्रयोग किया जाता है। क्वेरी के अंत में खंड द्वारा ऑर्डर आउटपुट में पंक्तियों के क्रम को निर्धारित करने के लिए उपयोग किया जाता है (यानी अनुक्रम संख्या के लिए क्रम और पंक्तियों का क्रम भिन्न हो सकता है)।

+0

अच्छा :)। मैंने अपने प्राथमिक कुंजी कॉलम पर row_number किया था। इस तरह मुझे किसी भी अंतराल के बिना 1 से अनुक्रमिक संख्या मिली (भले ही पंक्ति हटा दी गई हो)। – TCM

2

आपके परिणाम में विशिष्टता हमेशा आपकी प्राथमिक कुंजी होगी।

लेकिन ROW_NUMBER फ़ंक्शन नामक कुछ है जिसे किसी विशिष्ट परिणाम में पंक्ति की अनूठी पहचान के रूप में उपयोग किया जा सकता है।

SELECT zip,city,state,latitude,longitude,timezone,dst, 
      ROW_NUMBER() OVER (ORDER BY zip) AS num 
      FROM dbo.zipcode; 
-1

मुझे लगता है कि आप इस एक का उपयोग करना चाहिए ....

DCount('Column_Name','Table_Name','Column_Name <= ' & [Column_Name]) as SR

+0

'DCount()' SQL सर्वर में कोई फ़ंक्शन नहीं है। – Smandoli

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