繁体   English   中英

如何以相同的顺序更新列

[英]how to update a column with same sequence

我需要将具有另一列(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

建议我

此表达式为您提供最大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)

我认为这会起作用

update User set LastName = +'LastName_'+  RIGHT('0000'+ CONVERT(varchar(10),UserID),4) 

这将给出确切的结果。

update User set LastName = LastName +'_'+RIGHT('000'+cast(UserID as varchar), 4)

SQL小提琴

试试这个

update User set LastName = +'LastName_'+  RIGHT('0000'+ CONVERT(varchar(10),UserID),4)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM