ifexists (select*from dbo.sysobjects where id =object_id(N'[dbo].[fn_Comm_SplitStr]') and xtype in (N'FN', N'IF', N'TF')) dropfunction[dbo].[fn_Comm_SplitStr] GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GO /**//* ******************************************** function : split string ,return table create by :
create at : 2007-02-10 modify by : modify at : remark : case : SELECT * FROM DBO.fn_Comm_SplitStr('aaaa,bbbb,cccc,',',') ******************************************** */ CREATEFUNCTION DBO.fn_Comm_SplitStr ( @SOURCE_STRNVARCHAR(4000) ,@SEPARATE_STRVARCHAR(10) ) RETURNS@TSTRTABLE ( STR1 NVARCHAR(200) , SORT INT ) AS BEGIN DECLARE@IINT ,@JINT SELECT@SOURCE_STR=RTRIM(LTRIM(@SOURCE_STR)) , @I=CHARINDEX(@SEPARATE_STR, @SOURCE_STR) , @J=0 WHILE@I>=1 BEGIN INSERT@TSTR (STR1,SORT) VALUES(LEFT(@SOURCE_STR,@I-1), @J+1) SELECT@SOURCE_STR=SUBSTRING(@SOURCE_STR,@I+1,LEN(@SOURCE_STR)-@I) , @I=CHARINDEX(@SEPARATE_STR,@SOURCE_STR) , @J=@J+1 END IF@SOURCE_STR<>'' INSERT@TSTR (STR1,SORT) VALUES(@SOURCE_STR, @J+1) RETURN END GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO