Я хочу вставить идентификатор для каждой существующей строки со значениями - PullRequest
0 голосов
/ 09 октября 2018

У меня есть таблица с разными столбцами (все с данными), проблема в том, что я хочу назначить идентификатор для каждой строки, и я не знаю, как это сделать.

Я пыталсяделать с курсором, но у меня нет никаких условий для различения строк, потому что в каждой строке некоторые данные будут в других строках.

Пример того, что я хочу сделать:

TABLE RACE
___________

COLUMNS
___________

Circuit | Date | Pilots
Montmelo| 10/12| 24
Montmelo| 10/13| 24
Montmelo| 10/14| 24
Japan   | 10/17| 23

Это всего лишь пример таблицы, и я хочу добавить идентификатор для каждой строки, увеличенный на 1

TABLE RACE
___________

COLUMNS
___________

Circuit | Date | Pilots | ID
Montmelo| 10/12| 24     | 1
Montmelo| 10/13| 24     | 2
Montmelo| 10/14| 24     | 3
Japan   | 10/17| 23     | 4

Надеюсь, вы меня понимаете, и извините за мой английский!

Ответы [ 3 ]

0 голосов
/ 09 октября 2018

Здесь это то, что я разработал.Оказывается, вы можете использовать IDENTITY для подсчета таких строк.
Так вот:

ALTER TABLE RACE ADD id INT IDENTITY(1,1);
0 голосов
/ 09 октября 2018

Попробуйте: -

ALTER TABLE RACE ADD id INT IDENTITY(1,1);
                 OR
select Circuit,Date,Pilots,ROW_NUMBER()OVER(ORDER BY (SELECT 1 ))  as ID From RACE 
0 голосов
/ 09 октября 2018

@ Jeyem, Вы можете легко добавить столбец ID, используя ROW_NUMBER.Как это:

DECLARE @MyTable TABLE (Circuit varchar(20), Date VARCHAR(8), Pilots int)
INSERT INTO @MyTable
SELECT 'Montmelo', '10/12', 24  UNION ALL
SELECT 'Montmelo', '10/13', 24  UNION ALL
SELECT 'Montmelo', '10/14', 24  UNION ALL
SELECT 'Japan', '10/17', 23 

SELECT *, ID=ROW_NUMBER()over(order by Date)
FROM
    @MyTable

enter image description here

...