SQLServer截取参数split升级版

CREATE FUNCTION [dbo].[f_split_a]
(
@Expression varchar(8000) – 原参数串
, @Delimiter varchar(10) – 参数分隔符
, @index int – 要获取第几个参
)
RETURNS varchar(1000)
AS
BEGIN
declare @i int, @dl int, @l int, @value varchar(2000)
– @i获取字符出现的位置 @l 获取原参数串的长度
select @i = charindex(@Delimiter, @Expression), @l = len(@Expression)
– @dl 获取分隔符出现次数
select @dl=len(@Expression)-len(REPLACE(@Expression,@Delimiter,’’))
– 分隔符出现的次数大于等于要获取第N个参数
if @dl >= @index
begin
while (@index > 0 )
begin
select @value = ltrim(rtrim(left(@Expression, @i - 1))), @Expression = substring(@Expression, @i + 1, @l)
–insert into @Values (value) values(@value)
select @i = charindex(@Delimiter, @Expression), @l = len(@Expression)
set @index = @index - 1
end
end
return @value
END

eg:
select dbo.f_split_a(‘第一个参|第2个参|第3个参|第4个参|第5个参|第6个参|’,’|’,1)


第一个参

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sinqi_SG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值