通过分界符划分字符串函数

--函数功能:  在字符串@str中,以@split为分界符,第@pos个的值
create function f_GetCol(@str varchar(200),@split varchar(10),@pos int)
returns varchar(20)
as
begin
while @pos>1 and charindex(@split,@str+@split)>0
          
select @pos=@pos-1,@str=stuff(@str,1,charindex(@split,@str+@split),'')
return (isnull(left(@str,charindex(@split,@str+@split)-1),''))
end

go

declare @t  table (msg varchar(200))
insert into @t
select 'YK|43.00|43.00|' union all
select 'ZX|2350.00|2350.00|' union all
select '2032|MD|15|120.00|120.00|4518105496132709,12/2006,0,,|' 

select msg,
dbo.f_GetCol(msg,
'|',1as col1,
dbo.f_GetCol(msg,
'|',2as col2,
dbo.f_GetCol(msg,
'|',3as col3 
 
from @t

/*
msg                        col1            col2             col3
-----------------------------------------------------------------------                --------       --------       ----------
YK|43.00|43.00|    YK    43.00    43.00
ZX|2350.00|2350.00|    ZX    2350.00    2350.00
2032|MD|15|120.00|120.00|4518105496132709,12/2006,0,,|    2032    MD    15
*/


drop function f_GetCol
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值