将数据按顺序插入单个列

时间:2015-01-15 19:29:20

标签: sql sql-server-2008

我想将序列号插入一列。

列已设置为NULL

是否有一个命令,我现在可以用它来填充带有连续数字的列

由于

2 个答案:

答案 0 :(得分:0)

您可以使用row_number分析函数生成序列号,可用于更新值。

 WITH cte
 AS
 ( SELECT ROW_NUMBER() OVER ( ORDER BY (SELECT null)) as rn , column1
   FROM table1
 )
 UPDATE cte
 SET column1 = rn

答案 1 :(得分:0)

根据您的评论:

  

几乎已经做到了,但如果我们可以让它顺序排列会很好   正确地,例如0000001,0000002,0000003等,最多7个   字符

我认为这就是你要做的事情:

SELECT RIGHT('0000000' + CONVERT(VARCHAR, ROW_NUMBER() OVER ( ORDER BY COLUMN_NAME)), 7) AS ROW_NUM
FROM TABLE_NAME

评论后更新:

  

基本上这就是我想要做的。我将运行查询   从该ALTATH列中获取那些将用作的7个字符ID   引用ID,以便列应具有那些输出或输入   它......很明显......谢谢

我会亲自使用Identity列并在选择这样的记录时格式化输出:

SELECT RIGHT('0000000' + CONVERT(VARCHAR, ID_COLUMN), 7) AS ROW_NUM
FROM TABLE_NAME

如果使用分析函数,则每次ROW_NUM列都不相同。如果您使用Identity SQL Server将负责为您分配数字。这就是DBMS的工作。