как генерировать серийные номера + добавить 1 в операторе выбора - PullRequest
5 голосов
/ 29 сентября 2011

Я знаю, что мы можем сгенерировать row_number в операторе select.Но 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 party_code, ROW_NUMBER() OVER (ORDER BY party_code) AS [serial number]
FROM myTable
ORDER BY party_code

Как изменить выше оператор выбора и начать с 2?

Ответы [ 2 ]

16 голосов
/ 29 сентября 2011
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, но когда все сказано и сделано, это все равно просто функция с числовым возвращениемзначение, и этим возвращаемым значением можно манипулировать так же, как и любым другим числом.

2 голосов
/ 29 сентября 2011

Я не знаю много о 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...