2011-09-29 8 views
5

So che possiamo generare numero_riga nell'istruzione select. Ma row_number inizia da 1, ho bisogno di generare da 2 in poi.come generare numeri di serie + Aggiungi 1 in istruzione select

esempio

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

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

corrente sto usando qui di seguito select per generare il numero di riga normale.

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

Come modificare l'istruzione di selezione sopra e iniziare da 2?

+8

ooh, dovrai calcio di te stesso ... – AakashM

+1

hai provato 'ROW_NUMBER() + 1'? –

risposta

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

aggiungere: ROW_NUMBER() ha una sintassi inusuale, e può essere fonte di confusione con i vari OVER e PARTITION BY clausole, ma quando tutto è detto e fatto è ancora solo una funzione con un valore di ritorno numerici, e che il ritorno il valore può essere manipolato allo stesso modo di qualsiasi altro numero.

+1

+1 Il tuo frutto in sospensione, signore. Buona spiegazione, però. :) –

2

Non so molto di SQL Server, ma uno di questi lavorerò:

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

O

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