我想实现自动ID.
table1:
ID ,name1,name2....
ID为主键,nvarchar(20),其值为格式可能为:abc123,ab444c-cc3467,222bbasdf12222等
我想取出数据表最大的ID最后的数字串,
然后加1,返回的值,如何做?
比如得到:abc124
table1:
ID ,name1,name2....
ID为主键,nvarchar(20),其值为格式可能为:abc123,ab444c-cc3467,222bbasdf12222等
我想取出数据表最大的ID最后的数字串,
然后加1,返回的值,如何做?
比如得到:abc124
打反字符,取不是数字的位置index,打反后用right
set @s='abc123'
set @a=''
while len(@s)>0
begin
set @a=@a+ substring(@s,patindex('%[0-9]%',@s),1)
set @s=stuff(@s,patindex('%[0-9]%',@s),1,'')
endprint @a
declare @s varchar(20)
set @s='123abc_dn2gsa234'
select right(@s,(patindex('%[^0-9]%',reverse(@s))-1))
set @s='abc123'
print
reverse(right(reverse(@s),len(@s)-patindex('%[^0-9]%',reverse(@s))+1))+rtrim(
reverse(left(reverse(@s),patindex('%[^0-9]%',reverse(@s))-1))+1)^_^