樣本:傳入多個Email地址,通過每個Email地址間的','分隔字元,將各Email地址分開。SELECT * FROM dbo.uf_Split('aa@aa.com,bb@bb.com,cc@cc.com,dd@dd.com',',');查詢結果:subid autoidaa@aa.com 1bb@bb.com 2cc@cc.com 3dd@dd.com 4下面是[uf_Split]方法的具體實現:CREATE FUNCTION [dbo].[uf_Split](@str VARCHAR(max),@splitchar CHAR(1)) RETURNS @t TABLE(subid VARCHAR(1000),autoid INT) AS /* subject:split函數(目前只能對單個字元進行分割,不能以片語方式分割) author:kq zhou create date:2009-4-1 */ BEGIN DECLARE @substr VARCHAR(max) SET @substr=@str DECLARE @i INT,@j INT SET @j=LEN(REPLACE(@str,@splitchar,REPLICATE(@splitchar,2)))-LEN(@str)--擷取分割符個數 IF @j=0 BEGIN INSERT INTO @t VALUES (@substr,1) --沒有分割符則插入整個字串 END ELSE BEGIN SET @i=0 DECLARE @m int WHILE @i<=@j BEGIN IF(@i<@j) BEGIN SET @m=CHARINDEX(@splitchar,@substr)-1 --擷取分割符的前一位置 INSERT INTO @t VALUES(LEFT(@substr,@m),@i+1) SET @substr=RIGHT(@substr,LEN(@substr)-(@m+1)) --去除已擷取的分割串,得到還需要繼續分割的字串 END ELSE BEGIN INSERT INTO @t VALUES(@substr,@i+1)--對最後一個被分割的串進行單獨處理 END SET @i=@i+1 END END RETURN END GO