我想为每个具有值的现有ROW插入一个ID

时间:2018-10-09 08:14:28

标签: sql sql-server tsql ms-office

我有一个具有不同列(均带有数据)的表,我的问题是我想为每一行分配一个ID,但我不知道该怎么做。

我尝试使用游标,但是我没有任何条件来区分行,因为每行中的某些数据都会在其他行中。

我想做的事的例子:

TABLE RACE
___________

COLUMNS
___________

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

这只是一个表的示例,我想要的是为每行添加一个ID,增加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 :(得分:2)

@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

答案 1 :(得分:0)

Here是我的工作。事实证明,您可以使用IDENTITY来对这样的行进行计数。
就是这样:

ALTER TABLE RACE ADD id INT IDENTITY(1,1);

答案 2 :(得分:0)

尝试一下:-

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