[SQL]实现按照指定分割分分割字符串

SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON
GO
CREATE  function [dbo].[fun_split](@SourceSql varchar(max),@StrSeprate varchar(10))  
returns @temp table(SplitValue NVARCHAR(max))  
--功能: 实现split的函数  
--
用法:select * from dbo.fun_split('ABC:BC:C:D:E::',':')   
as   
begin  
    declare @i int  
    set @SourceSql=rtrim(ltrim(@SourceSql))  
    set @i=charindex(@StrSeprate,@SourceSql)  
    while @i>=1  
    begin  
        insert @temp values(left(@SourceSql,@i-1))  
        set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)  
        set @i=charindex(@StrSeprate,@SourceSql)  
    end  
    if @SourceSql<>'\'  
    insert @temp values(@SourceSql)  
    return   
end  
GO
posted @ 2013-01-08 14:31  跟着阿笨一起玩.NET  阅读(790)  评论(0编辑  收藏  举报