继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字符串逗号分隔函数就介绍到这,大家可以参考一下。