生成列的增量数据

时间:2016-09-09 13:29:20

标签: sql-server

我需要以下面的格式按特定顺序为大约400条记录生成PIN码。因此,我需要更新声明来更改PIN列下的现有PIN码,以遵循以下格式

表名:Citizen

Firstname       Lastname    PIN        Address  Age    other columns....
John             Smith      4311      20001     19
Andrew           Evans      4312      363252    30
Bill             Towny      4313      63322     67
Dame             Beaut      4314      34222     34

基本上需要创建增量为1的引脚数... 4311,4312,4313,4314

由于

_______________________以下脚本______________

以下是我的剧本

 WITH PIN_NO
AS
(
SELECT 4310 + ROW_NUMBER() OVER(ORDER BY Firstname, Lastname) NEW_PIN, *
FROM [dbo].[C3MDMRevsBens]
)

UPDATE PIN_NO
SET   [Account Reference Number]  = RIGHT('0' + CAST(NEW_PIN AS    
VARCHAR (10)),5)

当我运行查询以按升序选择时

select * from [dbo].[C3MDMRevsBens] order by [Account Reference Number]

开头
 00000
 00001
 00002
 00003
 00004

这是一个VARCHAR(255)列

1 个答案:

答案 0 :(得分:2)

试试这个:
注意:您没有提到更新PIN的任何订单,因此我按名字和姓氏订购。

;WITH PIN_NO
AS
(
    SELECT 4310 + ROW_NUMBER() OVER(ORDER BY Firstname, Lastname ) NEW_PIN, *
    FROM Citizen
)

UPDATE PIN_NO
SET  PIN = RIGHT('0' + CAST(NEW_PIN AS VARCHAR(10)),5)