您的位置:首页 > 数据库

SQL实现split功能的函数

2008-09-05 14:11 483 查看
SQL实现split功能的函数

分割再成批插入

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 #table

declare @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 #table

create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))

returns @temp table(a varchar(100))

--实现split功能 的函数

as

begin

declare @i int

set @SourceSql=rtrim(ltrim(@SourceSql))

set @i=charindex(@StrSeprate,@SourceSql)

while @i>=1

begin

insert @temp values(left(@SourceSql,@i-1))

set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)

set @i=charindex(@StrSeprate,@SourceSql)

end

if @SourceSql<>'/'

insert @temp values(@SourceSql)

return

end

用法:select * from dbo.f_split('ABC:BC:C:D:E',':')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: