字符串拆分函数

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

 


 

你可能感兴趣的:(字符串)