長度小於8000(varchar類型),以"逗號"分隔的字符串

CREATE     FUNCTION dbo.sms_fn_splitstring(@SourceString varchar(8000))
RETURNS @ReturnTable TABLE(SubColStr varchar(200))
AS  
BEGIN
 declare @CommaStr varchar(8000),@SplitStr varchar(8000),@SplitLen int,@Length int
 select @SplitStr=@SourceString,@SplitLen=CHARINDEX(',',@SplitStr),@Length=DATALENGTH(@SplitStr)
 
 while @Length>0
 begin
  if @SplitLen=0 set @SplitLen=@Length+1
  set @CommaStr =@SplitStr
  insert @ReturnTable (SubColStr) values(SUBSTRING(@CommaStr,0,@SplitLen))
  select @SplitStr = SUBSTRING(@CommaStr,@SplitLen+1,@Length),@Length=DATALENGTH(@SplitStr),@SplitLen=CHARINDEX(',',@SplitStr)
  end

 RETURN

END 

發佈了9 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章