将连续数字插入表格中

时间:2015-03-12 07:07:55

标签: sql-server

假设我有下表:

id     name     age
       John     23
       Mary     22
       Mike     25
       etc      etc

我想为每条记录生成id列的连续编号。有谁可以帮助我?

很抱歉,如果我问过同样的问题。

3 个答案:

答案 0 :(得分:1)

您可以使用ROW_NUMBER()添加序号:

SELECT
    id = ROW_NUMBER() OVER(ORDER BY (SELECT NULL)),
    name,
    age
FROM yourTable

答案 1 :(得分:1)

以下是如何通过CTE更新表格的示例:

DECLARE @t TABLE ( ID INT, Name NVARCHAR(50) )

INSERT  INTO @t
VALUES  ( 3, 'a' ),
        ( 5, 'b' ),
        ( 10, 'c' )


SELECT  * FROM    @t;

WITH    cte
          AS ( SELECT   ID ,
                        ROW_NUMBER() OVER ( ORDER BY ( SELECT 1 ) ) AS RN
               FROM     @t
             )
    UPDATE  cte
    SET     ID = RN

SELECT  * FROM    @t

输出:

ID  Name
3   a
5   b
10  c

ID  Name
1   a
2   b
3   c

而不是

ROW_NUMBER() OVER ( ORDER BY ( SELECT 1 ) ) AS RN

你可以做到

ROW_NUMBER() OVER ( ORDER BY Name ) AS RN

通过在Name列中排序来增加值。

答案 2 :(得分:0)

更改您的表格,然后添加标识,它将生成值

 ALTER TABLE dbo.YourTable
   Add id Int Identity(1, 1)