mssql 截取字符串从指定标记位置开始到指定标记结束的方法


截取一个字符串从指定的开始位置到指定的特殊结束位置中的字符串的方法




declare @thisBillInfo nvarchar(100)

set @thisBillInfo =N'maomao365\.com\猫猫\小屋gf\' ---待分解字符串
 
declare @startId int    ---开始位置
declare @endId   int    ---结束位置
declare @regChar varchar(10)  ---分隔字符串
set @regChar ='\'
set @startId =2
set @endId =3 



declare @table table(keyId int identity,info nvarchar(100))

/*分解字符串*/


-----------分解start----------------
declare @thisBillInfoTmp varchar(4000)
 
while charindex(@regChar,@thisBillInfo) >0
begin
set @thisBillInfoTmp = substring(@thisBillInfo,0,charindex(@regChar,@thisBillInfo));
set @thisBillInfo     = stuff(@thisBillInfo,1,charindex(@regChar,@thisBillInfo),'');
   
     insert into @table(info)
     values
     (@thisBillInfoTmp)
  
end
 

----------分解end-------------------

----获取字符串信息 例 获取第1位~第3位
 

declare  @showInfo NVARCHAR(MAX)
set @showInfo = ''

SELECT @showInfo = @showInfo + @regChar + info  
 from @table as t where t.keyId >=@startId and keyId <=@endId

print @showInfo