【SQL】SQL中通过特殊符号,并指定…

本文介绍了一个SQL函数Get_StrOfIndex的实现,该函数用于从指定的字符串中通过特定的分隔符获取所需的子串。文章提供了详细的代码示例及如何调用此函数的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


CREATE function [dbo].[Get_StrOfIndex]
(
@str varchar(max), --要分割的字符串
@split varchar(10), --分隔符号
@index int --取第几个元素,注意从1开始  
)
--returns varchar(1024)
returns varchar(max)
as
begin
declare @location int
declare @start int
declare @next int
declare @seed int
set @str=ltrim(rtrim(@str))
set @start=1
set @next=1
set @seed=len(@split)
set @location=charindex(@split,@str)
while @location<>0 and @index>@next
begin
set @start=@location+@seed
set @location=charindex(@split,@str,@start)
set @next=@next+1
end
--说明:这儿存在两种情况:
--1、字符串不存在分隔符号
--2、字符串中存在分隔符号,跳出while循环后,@location为0,那默认为字符串后边有一个分隔符号。
if @location=0 
select @location=len(@str)+1
return substring(@str,@start,@location-@start)
end

调用:

DECLARE @RHPvarchar(200)
SET @RHP=(SELECT dbo.Get_StrOfIndex (@STR,',',4))

用一个字符型变量接收, 函数的三个参数分别代表 
'要截取的字符串 @STR','特殊字符 ,'特殊字符出现的第几次'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值