Chinaunix首页 | 论坛 | 博客
  • 博客访问: 43193
  • 博文数量: 33
  • 博客积分: 1480
  • 博客等级: 上尉
  • 技术积分: 360
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-17 16:06
文章分类

全部博文(33)

文章存档

2009年(2)

2008年(31)

我的朋友
最近访客

分类: Mysql/postgreSQL

2008-04-24 14:53:08

不使用parsename函数来拆分字符串
ALTER
 function dbo.UDF_SplitSubString 

 
@Expression varchar(8000
,
@Delimiter varchar(100
,@ 
int 

returns varchar(8000
as 
begin 
--declare @Expression varchar(8000) 
--
set @Expression = 'abc@@pppp@aa' 
--
declare @Delimiter varchar(100) 
--
set @Delimiter = '@@@'
--
declare @ int 
--
set @ = 3

declare @p int 
set @p = CharIndex(@Delimiter,@Expression
if @p > 0
begin
   
set @p = @p + len(@Delimiter- 1
end
declare @i int 
set @i = 1 
while @i < @ 
begin  
   
set @i = @i + 1
   
set @Expression = substring (@Expression@p + 1,len(@Expression- @p ) 
   
set @p = CharIndex(@Delimiter,@Expression)
   
if @p > 0
   
begin
      
set @p = @p + len(@Delimiter- 1
   
end
   
else
   
begin
      
break
   
end
end 

declare @s varchar(1000
if @p = 0 and @i = @
begin 
   
set @s = @Expression
end 
else if @i = @ 
begin 
   
set @s = substring(@Expression1,@p - len(@Delimiter)) 
end 
return @s
end 

GO

declare @ varchar(1000
set @ = '@@playyuer@www&&.Microshaoft&&com@90.90@@pppp@.' 
declare @d varchar(1000
set @d = '@@'
select 
 dbo.UDF_SplitSubString (@ , 
@d0
,dbo.UDF_SplitSubString (@ , 
@d1
,dbo.UDF_SplitSubString (@ , 
@d2
,dbo.UDF_SplitSubString (@ , 
@d3
,dbo.UDF_SplitSubString (@ , 
@d4
,dbo.UDF_SplitSubString (@ , 
@d5
,dbo.UDF_SplitSubString (@ , 
@d6
,dbo.UDF_SplitSubString (@ , 
@d7
,dbo.UDF_SplitSubString (@ , 
@d8
,dbo.UDF_SplitSubString (@ , 
@d100)

阅读(499) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~