--============================================== --将指定的字符串拆分多行数据 --============================================== ALTER FUNCTION dbo.ufn_SplitString ( @SourceSql VARCHAR(MAX) , @StrSeprate VARCHAR(10) ) RETURNS @temp TABLE (C1 VARCHAR(MAX) ) 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 --===================================================== --用法: SELECT * FROM dbo.ufn_SplitString(‘ABDC,BDF,DEF,,‘,‘,‘) --排除空字符串 SELECT * FROM dbo.ufn_SplitString(‘ABDC,BDF,DEF,,‘,‘,‘) WHERE C1<>‘‘
原文:http://www.cnblogs.com/TeyGao/p/3542654.html