sqlserver里的Split

 

--Robin[肥羊]
CREATE FUNCTION f_Split
(
    @str varchar(
8000),
    @strSeperate varchar(
10)
)
RETURNS @temp table(a varchar(
100))
AS
BEGIN    
    SET @str
=LTrim(RTrim(@str))         --'a,b,c'
    
--if @str is null or @str=''
    DECLARE @i 
int
    SET @i
=CHARINDEX(@strSeperate,@str)
    WHILE @i
>=1
    BEGIN
        INSERT into  @temp SELECT (LEFT(@str,@i
-1))
        SET @str
=SUBSTRING(@str,@i+1,LEN(@str)-@i)
        
--@str=STUFF(@str,1,@i,'')
        SET @i
=CHARINDEX(@strSeperate,@str)
        
    END
    IF @str
!='\'
      INSERT into  @temp SELECT @str
    
    RETURN 
END
GO
select 
* from f_Split('a,b,c,d,e,f,g',',')
posted @ 2008-03-15 20:12  roboth  阅读(705)  评论(0)    收藏  举报