又是一个难懂的标题,上例子吧,比如一个字符串,‘abc,1344,343,13as,33,343’,这个字符串都是用','分隔的,现在想截取第四个逗号前边所有的内容,方法如下:
CREATE FUNCTION [dbo].[Get_StrArrayStrOfIndex]
(
@str VARCHAR(1024), --要分割的字符串
@split VARCHAR(10), --分隔符号
@index INT --取第几个元素
)
RETURNS VARCHAR(1024)
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;
RETURN SUBSTRING(@str, 0, @start - 1);
END;
测试如下:
DECLARE @str NVARCHAR(max)='abc,1344,343,13as,33,343'
SELECT dbo.[Get_StrArrayStrOfIndex](@str,',',4)
结果:
————————————————
版权声明:本文为优快云博主「二月十六」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/sinat_28984567/article/details/84874476