如何获得两个特定字符中间的子字符串?
各位大侠请帮忙:   
 小女子遇到如下问题: 
 现有母字符串: 
 PRD.ALL.SB.DDARET.NF.STMT.RAWDT(+1)   需要要得到子字符串:DDARET   
 说明:母字符串是有规律的: 
 PRD.ALL.SB.DDARET.NF.STMT.RAWDT(+1)    
 PRD.ALL.SB.DDANBF1.NF.STMT.RAWDT(+1)    
 PRD.ALL.SB.DDANBF2.NF.STMT.RAWDT(+1).................   
 我所需提取的是:DDARET,   DDANBF1,   DDANBF2.也就是说我需要第三个.和第四个.中间的字符串.可以用函数实现么?   
 先谢过各位。   
------解决方案--------------------SET QUOTED_IDENTIFIER ON  
 GO 
 SET ANSI_NULLS ON  
 GO     
 /*--字符串分函数   
 分拆指定分隔符的的字符串,返回指定位置的字符   
 --邹建 2004.04(引用请保留此信息)--*/   
 /*--调用示例   
 SELECT  
 dbo.f_splitSTR(userinfo, '||| ', 1) as 姓名, 
 dbo.f_splitSTR(userinfo, '||| ', 2) as 性格, 
 dbo.f_splitSTR(userinfo, '||| ', 3) as 手机, 
 dbo.f_splitSTR(userinfo, '||| ', 4) as 地址, 
 dbo.f_splitSTR(userinfo, '||| ', 5) as 其他 
 FROM( 
 SELECT userinfo =  '张三|||温和|||手机|||通讯地址 ' 
 )A 
 --*/ 
 CREATE FUNCTION dbo.f_splitSTR( 
 @s varchar(8000),   --要分拆的字符串 
 @split varchar(10), --数据分隔符 
 @pos int            -- 取第几个 
 )RETURNS varchar(100) 
 AS 
 BEGIN 
 DECLARE @splitlen int, @re varchar(100) 
 SET @splitlen=LEN(@split+ 'a ') - 2 
 WHILE CHARINDEX(@split,@s) >  0 AND @pos >  0 
 SELECT 
 @re = LEFT(@s,CHARINDEX(@split,@s)-1), 
 @s=STUFF(@s,1,CHARINDEX(@split, @s)+@splitlen, ' '), 
 @pos = @pos - 1 
 RETURN(CASE  
 WHEN @pos = 0 THEN @re  
 WHEN @pos = 1 THEN @s 
 ELSE NULL END) 
 END   
 GO 
 SET QUOTED_IDENTIFIER OFF  
 GO 
 SET ANSI_NULLS ON  
 GO   
------解决方案--------------------SELECT dbo.f_splitSTR( 'PRD.ALL.SB.DDARET.NF.STMT.RAWDT(+1)  ', '. ',4) 
 SELECT dbo.f_splitSTR( 'PRD.ALL.SB.DDARET1.NF.STMT.RAWDT(+1)  ', '. ',4) 
 SELECT dbo.f_splitSTR( 'PRD.ALL.SB.DDARET2.NF.STMT.RAWDT(+1)  ', '. ',4)
------解决方案--------------------create table t(col varchar(1000)) 
 insert t select  'PRD.ALL.SB.DDARET.NF.STMT.RAWDT(+1) ' 
 union all select  'PRD.ALL.SB.DDANBF1.NF.STMT.RAWDT(+1)  ' 
 union all select  'PRD.ALL.SB.DDANBF2.NF.STMT.RAWDT(+1) '   
 create function dbo.f_GetStr(@col varchar(1000)) 
 returns varchar(100) 
 begin 
 	declare @s varchar(100) 
 	select @s=substring(stuff(@col,1,11, ' '),0,charindex( '. ',stuff(@col,1,11, ' '))) 
 	return @s 
 end 
 go   
 select dbo.f_GetStr(col) from t   
 DDARET 
 DDANBF1 
 DDANBF2 
------解决方案--------------------可以。是在SQL語句中嗎? 
 Dim MyStr As String 
 Dim NFPosition As Integer   
 NFPosition=Instr(1,母字符串, "NF ")   
 MyStr=Right(left(母字符串,NFPosition-2),NFPosition-2-11)