declare @a varchar(10),@result varchar(32)
set @a=''set @result=replace(newid(),'-','')while @result<>''
begin
select @a=@a+left(@result,1) where isnumeric(left(@result,1))=1
set @result=right(@result,len(@result)-1)
end
select @a
set @a=''set @result=replace(newid(),'-','')while @result<>''
begin
select @a=@a+left(@result,1) where isnumeric(left(@result,1))=1
set @result=right(@result,len(@result)-1)
end
select @a
楼主的意思到底是将这个id字段中值是数字的给提取出来,还是将值为:
1BA34016-31A7-4915-95AA-CBABCB87119B
中的数字给提取出来?
set @result=replace(newid(),'-','')--把提取出来的数字部分提取出来,ABC部分不要
while @result<>''
begin
select @a=@a+left(@result,1) where isnumeric(left(@result,1))=1
set @result=right(@result,len(@result)-1)
end
select top 8000 identity(int,1,1) as N into numtab from
(select top 100 id=1 from sysobjects) as a,
(select top 100 id=1 from sysobjects) as b,
(select top 100 id=1 from sysobjects) as c2,declare @AllNum varchar(50)
set @AllNum=''select @AllNum=@AllNum+substring(a.MyID,b.N,1) from
(select '1BA34016-31A7-4915-95AA-CBABCB87119B' as MyID) a
left join numtab b
on charindex(substring(a.MyID,b.N,1),MyID,b.N-1)=b.N
where substring(a.MyID,b.N,1) like '[0-9]'print @AllNum
将(select '1BA34016-31A7-4915-95AA-CBABCB87119B' as MyID)
改成你的表名和字段名。