来源互联网:
一、按指定符号分割字符串,返回分割后的元素个数
CREATE FUNCTION [dbo].[Get_StrArrayLength] ( @str VARCHAR(1024) , --要分割的字符串 @split VARCHAR(10) --分隔符号 ) RETURNS INT AS BEGIN DECLARE @location INT DECLARE @start INT DECLARE @length INT SET @str = LTRIM(RTRIM(@str)) SET @location = CHARINDEX(@split, @str) SET @length = 1 WHILE @location <> 0 BEGIN SET @start = @location + 1 SET @location = CHARINDEX(@split, @str, @start) SET @length = @length + 1 END RETURN @length END
二、按指定符号分割字符串,返回分割后指定索引的第几个元素
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 IF @location = 0 SELECT @location = LEN(@str) + 1 --这儿存在两种情况:1、字符串不存在分隔符号 2、字符串中存在分隔符号,跳出while循环后,@location为0,那默认为字符串后边有一个分隔符号。 RETURN SUBSTRING(@str,@start,@[email protected]start) END
你的这个分享好多啊,我的只有几个。。。使用的justthis么?
是啊。jiathis。可以设置么。喜欢啥加上呗
文章不错,来看看