onekey

专注.NET技术
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

字符串拆分函数

Posted on 2011-12-22 16:05  onekey  阅读(904)  评论(0编辑  收藏  举报

1.拆分函数。

      用来从字符串中拆分出第几个字符串,直接上代码:

/****** 从字符串中按照分隔符拆分出字符串,以“,”为例 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create FUNCTION [dbo].[s_SplitSTR]  
(
 @s   varchar(8000) , --输入字符串
 @c int     --需要拆分出来的位置
)
RETURNS varchar (8000)  --返回结果
AS
BEGIN
 DECLARE @s1 varchar(8000) --拆分出的结果
 DECLARE @c1 int    --分隔符位置
 set @c1=0
 
 --------以下通过循环查找分隔符到需要拆分的位置,并返回拆分的字符串---------  
 while @c1<>@c
   begin  
   
  set @s1=substring(@s,0,CHARINDEX(',', @s))
    if @s1 =''    --若当前字符串 不包含“,”,如果当期位置是要查找位置,返回字符串,否则返回空
   begin  
    if @c1+1=@c  
     return @s
    else
     return ''
   end 
   
  set @s=substring(@s,CHARINDEX(',', @s)+1,len(@s)-CHARINDEX(',', @s)) --取剩余字符串
  set @c1=@c1+1        
   end 
  return @s1
END

 

2.测试一下:

  

select 'a,b,c' as col1 into #t 
insert #t(col1) values('e,f')
insert #t(col1) values('g')

select  dbo.s_SplitSTR(col1,1) , dbo.s_SplitSTR(col1,2) , dbo.s_SplitSTR(col1,3)  from #t
drop table #t