我想将序列号插入一列。
列已设置为NULL
是否有一个命令,我现在可以用它来填充带有连续数字的列
由于
答案 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的工作。