实现split功能的函数

/*
功能:实现split功能的函数
*/

create function dbo.fn_split
(
@inputstr varchar ( 8000 ),
@seprator varchar ( 10 )
)
returns @temp table (a varchar ( 200 ))
as

begin
declare @i int

set @inputstr = rtrim ( ltrim ( @inputstr ))
set @i = charindex ( @seprator , @inputstr )

while @i >= 1
begin
insert @temp values ( left ( @inputstr , @i - 1 ))

set @inputstr = substring ( @inputstr , @i + 1 , len ( @inputstr ) - @i )
set @i = charindex ( @seprator , @inputstr )
end

if @inputstr <> ' / '
insert @temp values ( @inputstr )

return
end
go

-- 调用

declare @s varchar ( 1000 )

set @s = ' 1,2,43,5,4,3 '

select a pid,hid = 3 from dbo.fn_split( @s , ' , ' )

drop function dbo.fn_split

/*
pid     hid
------- -----
1       3
2       3
43      3
5       3
4       3
3       3

(所影响的行数为 6 行)

*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值