SQL 语句生成流水号

如下表是学生基本信息数据,现在要生成一个流水号作为学号格式如下,例如2018年入学的第一位学生的学号 20180001

declare @prefix varchar(10) 
select @prefix=cast(year(getdate()) as varchar(50))

select @prefix+right('0000'+cast(ID as varchar(10)),4) as num,ID,name,age
 from TableA

效果如下图

还有一种方法是利用substring 和len函数

 
select @prefix+ substring('0000',1,4-len(ID))+ID  as num1,ID,name,age
 from TableA 

利用replicate函数和len或者DATALENGTH函数

 declare @prefix varchar(10)='2018'
 
 select @prefix+ replicate('0',3-len(ID))+cast(ID as varchar(50))            
 from TableA 

 

当然可能还有其他方法,欢迎大家留言讨论

 

你可能感兴趣的:(数据库)