SQL实现split功能的函数

    技术2022-05-11  69

    分割再成批插入declare @s varchar(8000),@sql nvarchar(4000)set @s='1,12,1212,4545'set @sql='insert into t(col) select '+replace(@s,',',' col union all select ')exec(@sql)测试drop table #tabledeclare @s varchar(8000),@sql nvarchar(4000)set @s='1,12,1212,4545,454'create table #table (col int)set @sql='insert into #table(col) select '+replace(@s,',',' col union all select ')exec(@sql)select * from #tablecreate function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))returns @temp table(a varchar(100))--实现split功能 的函数as begindeclare @i intset @SourceSql=rtrim(ltrim(@SourceSql))set @i=charindex(@StrSeprate,@SourceSql)while @i>=1begininsert @temp values(left(@SourceSql,@i-1))set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)set @i=charindex(@StrSeprate,@SourceSql)endif @SourceSql<>'/'insert @temp values(@SourceSql)return end用法:select * from dbo.f_split('ABC:BC:C:D:E',':')

     

    最新回复(0)