sqlserver万能字符串分隔函数
程序员文章站
2024-03-15 15:41:59
...
基于工作中,经常要将指定字符串,按指字分隔符进行拆分,取出指定位置的子串。
经过常时间工作的实际运用,现在分享出来,供大家参与。
create FUNCTION [dbo].[Get_string_bySplit]
(
@List nvarchar(2000),--要分隔的字符串
@SplitOn nvarchar(5),--分隔符
@num1 int
)
RETURNS varchar(50)
as
BEGIN
declare @i int,
@j int,
@p int,
@num int,
@aa Varchar(200)
Set @i=0
Set @j=len(@SplitOn)
Set @p=0
While LEN(@List) > 0
Begin
Set @p = CHARINDEX(@SplitOn,@List)
if @p > 0
begin
set @aa = SUBSTRING(@List,1,@p - 1)
set @List= SUBSTRING(@List,@p + @j, LEN(@List))
end
else
begin
set @aa = @List
set @List= ''
end
set @i = @i + 1
If @i=@num1
Begin
break
End
else
set @aa= ''
End
return @aa
end
结果验证脚本:
--取出第1段
select dbo.Get_string_bySplit('123*456*789','*',1)
--取出第3段
select dbo.Get_string_bySplit('123*456*789','*',3)