2011-09-29 11 views
5

मुझे पता है कि हम चयन कथन में row_number उत्पन्न कर सकते हैं। लेकिन row_number 1 से शुरू होता है, मुझे 2 और बाद में उत्पन्न करने की आवश्यकता होती है।सीरियल नंबर कैसे उत्पन्न करें + चयन कथन में 1 जोड़ें

उदाहरण

party_code 
---------- 
R06048 
R06600 
R06791 
(3 row(s) affected) 
I want it like 

party_code serial number 
---------- ------------- 
R06048  2 
R06600  3 
R06791  4 

वर्तमान मैं चुनिंदा बयान नीचे का उपयोग कर रहा के लिए नियमित रूप से पंक्ति संख्या उत्पन्न करते हैं।

SELECT party_code, ROW_NUMBER() OVER (ORDER BY party_code) AS [serial number] 
FROM myTable 
ORDER BY party_code 

उपरोक्त चयन कथन को संशोधित कैसे करें और 2 से शुरू कैसे करें?

+8

उह, तुम लात वाला अपने आप को हो ... – AakashM

+1

क्या आप कोशिश 'ROW_NUMBER() + 1'? –

उत्तर

16
SELECT party_code, 1 + ROW_NUMBER() OVER (ORDER BY party_code) AS [serial number] 
FROM myTable 
ORDER BY party_code 

जोड़ने के लिए: ROW_NUMBER() एक असामान्य वाक्य रचना है, और विभिन्न OVER और PARTITION BY खंड के साथ भ्रमित हो सकते हैं, लेकिन जब सभी ने कहा और किया जाता है यह अभी भी एक अंकीय वापसी मान के साथ सिर्फ एक समारोह, और कहा कि वापसी है मूल्य किसी भी अन्य नंबर के समान तरीके से छेड़छाड़ की जा सकती है।

+1

+1 आपका कम लटकते फल, महोदय। अच्छा स्पष्टीकरण, यद्यपि। :) –

2

मैं एसक्यूएल सर्वर के बारे में ज्यादा पता नहीं है, लेकिन इनमें से किसी एक काम करेंगे:

SELECT party_code, 1 + ROW_NUMBER() OVER (ORDER BY party_code) AS [serial number] 
FROM myTable 
ORDER BY party_code 

या

SELECT party_code, serial_numer + 1 AS [serial number] FROM 
(SELECT party_code, ROW_NUMBER() OVER (ORDER BY party_code) AS [serial number] 
FROM myTable) 
ORDER BY party_code 
संबंधित मुद्दे