如何生成序列号+在select语句中添加1

时间:2011-09-29 15:52:54

标签: sql sql-server tsql

我知道我们可以在select语句中生成row_number。但是row_number从1开始,我需要从2开始生成。

例如

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开始?

2 个答案:

答案 0 :(得分: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 :(得分: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