sql server 自定义split 标值函数

**

sql server 自定义split 标值函数

**
自定义一个函数,分隔一个以分隔符的隔开字符串,例如把‘1,3,5,7,9’ 变成 数字1 3 5 7 9的结果集。

自定义标值函数:

复制代码
create function [dbo].[my_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
复制代码

测试:

declare @sql nvarchar(2000)
set @sql=‘1,3,5,7,9’
select * from Northwind.dbo.my_split(@sql,’,’)

运行结果截图:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/huang714/article/details/109983870
今日推荐