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
我将非常感谢您的一些帮助或指导。
答案 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子句。