它定义了个函数而已,SQL也能这么干的,定义好函数,很简单: create function dbo.Find(@string nvarchar(1000)) returns nvarchar(1000) as begin declare @return nvarchar(1000) select @return=substring(@string,n1,( select min(number) as n2 from master..spt_values where type='p' and number between a.n1+1 and 1000 and substring(@string,number,1) not between '0' and '9' )-n1) from( select min(number) as n1 from master..spt_values where type='p' and number between 1 and 1000 and substring(@string,number,1) between '0' and '9' )a return @return end go--下面就是你在MFC里做的事情: select dbo.Find('鸦帆布鞋844042原价229元') /* ------------------------------------------------------------------------------------ 844042(1 行受影响) */
create function dbo.Find(@string nvarchar(1000))
returns nvarchar(1000)
as
begin
declare @return nvarchar(1000)
select @return=substring(@string,n1,(
select min(number) as n2 from master..spt_values
where type='p' and number between a.n1+1 and 1000 and substring(@string,number,1) not between '0' and '9'
)-n1) from(
select min(number) as n1
from master..spt_values where type='p'
and number between 1 and 1000 and substring(@string,number,1) between '0' and '9'
)a
return @return
end
go--下面就是你在MFC里做的事情:
select dbo.Find('鸦帆布鞋844042原价229元')
/*
------------------------------------------------------------------------------------
844042(1 行受影响)
*/
declare @str varchar(20)='鸦帆布鞋844042原价229元'
select substring(@str,CHARINDEX('844042',@str),LEN('844042'))/*------------
844042(1 行受影响)