我需要将另一列(userID)的表更新为Lastname Column。所以我写了这样的查询
update User set LastName = +'LastName_'+ CONVERT (varchar(10),UserID)
结果给出了这样的结果
UserID FirstName LastName
1 AALIYAH Bhatt_1
2 Mohan Kumar_2
3 varun ratna_3
4 suresh rania_4
5 AARON suresh_5
etc ......
4500 Kalyan raju_4500
4501 raohan manish4501
如何在序列中获得姓氏.. 请参阅示例4500的最后一列,因此姓氏更新为raju_4500并且名字为userId(1),姓氏为Bhatt_1
我怎么能顺序进入
UserID FirstName LastName
1 AALIYAH Bhatt_0001
2 Mohan Kumar_0002
3 varun ratna_0003
4 suresh rania_0004
5 AARON suresh_0005
etc ......
4500 Kalyan raju_4500
4501 raohan manish4501
建议我
答案 0 :(得分:1)
此表达式为您提供最大UserID的长度:
select len(max(userid)) from User
你可以在这样的数字上加上前导零:
select right('0000000000' + convert(varchar(10), /*number*/), /*length*/)
所以,把它放在一起,我会这样做:
declare @length int = (select len(max(userid)) from User)
update User set LastName = 'LastName_' +
right('0000000000' + convert(varchar(10), UserID), @length)
答案 1 :(得分:0)
我认为这会起作用
update User set LastName = +'LastName_'+ RIGHT('0000'+ CONVERT(varchar(10),UserID),4)
答案 2 :(得分:0)
这将给出确切的结果。
update User set LastName = LastName +'_'+RIGHT('000'+cast(UserID as varchar), 4)
<强> SQL Fiddle 强>
答案 3 :(得分:0)
试试这个
update User set LastName = +'LastName_'+ RIGHT('0000'+ CONVERT(varchar(10),UserID),4)