欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-02 23:37:20
继sql -function创建函数数据库输出的结果用逗号隔开,在开发中也有许多以参数的形式传入带逗号字条串参数(数据大时不建议这样做) 例:查找姓名为“张三,李二” 的...

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

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

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

函数代码如下

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