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

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐