2011-09-29 6 views
5

Sé que podemos generar row_number en la instrucción select. Pero row_number comienza desde 1, necesito generar desde 2 en adelante.cómo generar números de serie + Agregar 1 en la instrucción de selección

ejemplo

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

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

actual que estoy usando a continuación instrucción de selección para generar el número de fila regular.

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

¿Cómo se puede modificar por encima de instrucción de selección y empezar de 2?

+8

Oh, ¿estás a patear a ti mismo ... ¿Usted intentó – AakashM

+1

'ROW_NUMBER() + 1'? –

Respuesta

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

añadir: ROW_NUMBER() tiene una sintaxis inusual, y puede ser confuso con las distintas cláusulas OVER y PARTITION BY, pero cuando todo está dicho y hecho todavía es sólo una función con un valor de retorno numérico, y que el regreso el valor puede ser manipulado de la misma manera que cualquier otro número.

+1

+1 Su fruta madura, señor. Buena explicación, sin embargo. :) –

2

No sé mucho acerca de SQL Server, pero ninguno de éstos a trabajar:

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 
Cuestiones relacionadas