解析逗号分隔信息的字符串为表格

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

CREATE FUNCTION dbo.Parsecsvstr (@list VARCHAR(500))
returns @tbl TABLE (
  str VARCHAR(20))
AS
  BEGIN
      DECLARE @valuelen INT,
              @pos      INT,
              @nextpos  INT

      SELECT @pos = 0,
             @nextpos = 1

      WHILE @nextpos > 0
        BEGIN
            SELECT @nextpos = Charindex(',', @list, @pos + 1)

            SELECT @valuelen = CASE
                                 WHEN @nextpos > 0 THEN @nextpos
                                 ELSE Len(@list) + 1
                               END - @pos - 1

            INSERT @tbl
                   (str)
            VALUES(Substring(@list, @pos + 1, @valuelen))

            SELECT @pos = @nextpos
        END

      RETURN
  END