免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1494 | 回复: 0
打印 上一主题 下一主题

实现制定分隔符拆分字符串 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-04-24 14:53 |只看该作者 |倒序浏览
不使用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(@Expression, 1,@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 (@ , @d, 0)

,dbo.UDF_SplitSubString (@ , @d, 1)

,dbo.UDF_SplitSubString (@ , @d, 2)

,dbo.UDF_SplitSubString (@ , @d, 3)

,dbo.UDF_SplitSubString (@ , @d, 4)

,dbo.UDF_SplitSubString (@ , @d, 5)

,dbo.UDF_SplitSubString (@ , @d, 6)

,dbo.UDF_SplitSubString (@ , @d, 7)

,dbo.UDF_SplitSubString (@ , @d, 8)

,dbo.UDF_SplitSubString (@ , @d, 100)
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/63828/showart_576170.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP