阿里云折扣码

轻云博客 > SQL Server数据库设计 > sql将逗号分隔的字符串转为表Table

sql将逗号分隔的字符串转为表Table

作者:Aisencici / 日期:2016-11-3 15:55:00 / 分类:SQL Server数据库设计 / 浏览:2881
  1. Create Function [dbo].[Func_SplitStrToTable](@str varchar(8000))  

  2.   

  3. Returns @tableName Table  

  4.   

  5. (  

  6.   

  7.    str2table varchar(100)  

  8.   

  9. )  

  10.   

  11. As  

  12.   

  13. --该函数用于把一个用逗号分隔的多个数据字符串变成一个表的一列,例如字符串'1,2,3,4,5' 将转换成一个表  

  14.   

  15. Begin  

  16.   

  17. set @str = @str+','  

  18.   

  19. Declare @insertStr varchar(100) --截取后的第一个字符串  

  20.   

  21. Declare @newstr varchar(8000) --截取第一个字符串后剩余的字符串  

  22.   

  23. set @insertStr = left(@str,charindex(',',@str)-1)  

  24.   

  25. set @newstr = stuff(@str,1,charindex(',',@str),'')  

  26.   

  27. Insert @tableName Values(@insertStr)  

  28.   

  29. while(len(@newstr)>0)  

  30.   

  31. begin  

  32.   

  33.    set @insertStr = left(@newstr,charindex(',',@newstr)-1)  

  34.   

  35.    Insert @tableName Values(@insertStr)  

  36.   

  37.    set @newstr = stuff(@newstr,1,charindex(',',@newstr),'')  

  38.   

  39. end  

  40.   

  41. Return  

  42.   

  43. End  

调用方法:


select  Func_SplitStrToTable('1,2,3,4,5')



本文标签:
From:
分享到: