用于逐步创建记录的脚本

时间:2016-09-06 11:41:31

标签: sql-server tsql

Paul为下面的问题提供了一个有用的脚本,但我想实际实现这些更改。如果我使用select语句,我只能看到它 请帮助解决这个问题

表名:Citizen

Firstname       Lastname    Telephone         Many other columns......
John             Smith      03907625212    
Andrew           Evans      0807452132    
Bill             Towny      05907122139  
Dame             Beaut      07894650569   

我有超过150,000条记录,其中电话号码需要采用设定格式(设置电话区号和增量顺序),即01907000001,01907000002,如下所示。除了名字和姓氏之外还有其他列将保持不变。只有电话领域需要这种转换。

理想情况应如下所示:

Firstname       Lastname      Telephone         Many other columns......
John             Smith       01907000001   
Andrew           Evans       01907000002  
Bill             Towny       01907000003 
Dame             Beaut       01907000004   

我将非常感谢您的一些帮助或指导。

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

SELECT 
    [FirstName],
    [LastName],
    '01907' + --area code
    RIGHT('00000' + --middle padding for zero's
        CAST(ROW_NUMBER() OVER (ORDER BY [LastName]) AS VARCHAR) --incremental value
        ,6) AS 'Telephone' --6 characters plus area code

        --<< YOUR OTHER FIELDS
FROM 
    [AdventureWorks].[Person].[Person]

我使用Adventure Works来测试它。

如果您希望通过其他内容递增,请更改窗口函数中的ORDER BY子句。