2011-09-29 107 views
5

我知道我们可以在select语句中生成row_number。但row_number从1开始,我需要从2开始生成。如何生成序列号+在select语句中添加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语句生成常规行号电流。

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

如何修改上面的select语句并从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()有一个不寻常的语法,并且可能会造成混淆与各种OVERPARTITION BY条款,但是当一切都说过和做过它仍然只是一个数字返回值的功能,以及回报价值可以像任何其他数字一样操纵。

+1

+1你的低垂果实,先生。好的解释,但。 :) –

2

我不知道很多关于SQL Server,但这些要么一会工夫:

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

OR

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 
相关问题