SQL server中字符串逗号分隔函数分享

继SQl -Function创建函数数据库输出的结果用逗号隔开,在开发中也有许多以参数的形式传入带逗号字条串参数(数据大时不建议这样做)

例:查找姓名为“张三,李二” 的数据此时在数据库里就要对此参数做处理如图:

函数代码如下

CREATE FUNCTION [dbo].[fnSplitStr] (

@sText NVARCHAR(Max),

@sDelim CHAR(1)

)

RETURNS @retArray TABLE (

value VARCHAR(100)

)

AS

BEGIN

DECLARE

@posStart BIGINT,

@posNext BIGINT,

@valLen BIGINT,

@sValue NVARCHAR(100);

IF @sDelim IS NULL

BEGIN

IF LEN(@sText)>100 SET @sText = SUBSTRING(@sText, 1, 100)

INSERT @retArray (value)

VALUES (@sText);

END

ELSE

BEGIN

SET @posStart = 1;

WHILE @posStart <= LEN(@sText)

BEGIN

SET @posNext = CHARINDEX(@sDelim, @sText, @posStart);

IF @posNext <= 0

SET @valLen = LEN(@sText) - @posStart + 1;

ELSE

SET @valLen = @posNext - @posStart;

SET @sValue = SUBSTRING(@sText, @posStart, @valLen);

SET @posStart = @posStart + @valLen + 1;

IF LEN(@sValue) > 0

BEGIN

IF LEN(@sValue)>100 SET @sValue = SUBSTRING(@sValue, 1, 100)

INSERT @retArray (value)

VALUES (@sValue);

END

END

END

RETURN

END

好了,关于sql字符串逗号分隔函数就介绍到这,大家可以参考一下。

以上是 SQL server中字符串逗号分隔函数分享 的全部内容, 来源链接: utcz.com/z/314429.html

回到顶部