SQL server中字符串逗号分隔函数分享
更新时间:2016年10月23日 22:18:08 投稿:mdxy-dxy
继SQl -Function创建函数数据库输出的结果用逗号隔开,在开发中也有许多以参数的形式传入带逗号字条串参数,需要的朋友可以参考下
继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字符串逗号分隔函数就介绍到这,大家可以参考一下。
相关文章
sqlserver 不能将值NULL插入列id(列不允许有空值解决)
Microsoft OLE DB Provider for SQL Server 错误 '80040e2f' 不能将值 NULL 插入列 'id',表 'web.dbo.dingdan';列不允许有空值。INSERT 失败2013-06-06
SQL窗口函数之聚合窗口函数的使用(count,max,min,sum)
许多常见的聚合函数也可以作为窗口函数使用,包括AVG()、SUM()、COUNT()、MAX()以及MIN()等函数,本文就详细的介绍了SQL窗口函数之聚合窗口函数的使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-04-04
详解将DataGrip连接到MS SQL Server的方法
这篇文章主要介绍了详解将DataGrip连接到MS SQL Server的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-11-11


最新评论