SQL實現split功能的函數

  1. SQL實現split功能的函數
  2. 分割再成批插入
  3. declare @s varchar(8000),@sql nvarchar(4000)
  4. set @s='1,12,1212,4545'
  5. set @sql='insert into t(col) select '+replace(@s,',',' col union all select ')
  6. exec(@sql)
  7. 測試
  8. drop table #table
  9. declare @s varchar(8000),@sql nvarchar(4000)
  10. set @s='1,12,1212,4545,454'
  11. create table #table (col int)
  12. set @sql='insert into #table(col) select '+replace(@s,',',' col union all select ')
  13. exec(@sql)
  14. select * from #table
  15. create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))
  16. returns @temp table(a varchar(100))
  17. --實現split功能 的函數
  18. as 
  19. begin
  20. declare @i int
  21. set @SourceSql=rtrim(ltrim(@SourceSql))
  22. set @i=charindex(@StrSeprate,@SourceSql)
  23. while @i>=1
  24. begin
  25. insert @temp values(left(@SourceSql,@i-1))
  26. set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
  27. set @i=charindex(@StrSeprate,@SourceSql)
  28. end
  29. if @SourceSql<>'/'
  30. insert @temp values(@SourceSql)
  31. return 
  32. end
  33. 用法:select * from dbo.f_split('ABC:BC:C:D:E',':'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章