Включайте номер строки в результат запроса (SQL Server)

Я думаю, что каждой строке в SQL-сервере дают уникальное число. Как я могу включать это в свои результаты SQL-запроса?

10
задан Smandoli 18 May 2016 в 16:43
поделиться

2 ответа

Если вы имеете в виду номер строки, выдаваемый Management Studio при выполнении запроса, то его невозможно получить, поскольку он не существует. Management Studio генерирует его на лету. Однако вы можете воссоздать порядковый номер с помощью функции ранжирования ROW_NUMBER, если вы используете SQL Server 2005 или более позднюю версию. Обратите внимание, что никогда не следует полагать, что база данных вернет строки в определенном порядке, если вы не включите оператор Order By. Таким образом, ваш запрос может выглядеть так:

Select ....
    , Row_Number() Over ( Order By T.SomeColumn ) As Num
From Table As T
Order By T.SomeColumn

Order By в предложении Over используется для определения порядка создания последовательных номеров. Пункт Order By в конце запроса используется для определения порядка строк в выводе (т.е. порядок для порядкового номера и порядок строк могут быть разными).

31
ответ дан 3 December 2019 в 14:33
поделиться

Уникальность вашего результата всегда будет вашим первичным ключом.

Но есть функция, называемая ROW_NUMBER, которая может использоваться как уникальный идентификатор строки в конкретном результате.

SELECT zip,city,state,latitude,longitude,timezone,dst,
          ROW_NUMBER() OVER (ORDER BY zip) AS num
          FROM dbo.zipcode;
3
ответ дан 3 December 2019 в 14:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: