SQL Server自定义函数(一)

本文介绍了一个SQL函数GetInStr,它可以将输入的字符串转换为列表形式,支持处理由分号、逗号或空格分隔的字符串。通过示例展示了如何使用此函数来解析复杂的字符串数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作用:该函数把传递过来的字符串转换成IN 后面的列表,可以处理以分号,逗号以及空格分隔的字符串 


CREATE FUNCTION [GetInStr]   

  (@SourceStr varchar(2000))--源字符串  

RETURNS  @table table(list  varchar(50) )    

  AS    

BEGIN  

  select @sourcestr =  replace(@sourcestr,';',',')      

  select @sourcestr = replace(@sourcestr,' ',',')  

 --declare @OutStr varchar(200)    

   if charindex(',',@sourcestr)>0    

    begin  

      declare @i int  

      declare @n int  

      set @i=1  

      while charindex(',',@sourcestr,@i)>0  

        begin  

           set @n=charindex(',',@sourcestr,@i)  

           insert into @table values(substring(@sourcestr,@i, @n-@i) )  

           set @i=@n+1  

        end  

        insert into @table values(substring(@sourcestr,@i,len(@sourcestr)-@i+1))  

    end  
    else insert into @table values(@sourcestr)  

  delete from @table where isnull(list,'') = ''  

return  

END  

 

  select * from GetInStr('a;b c,d,e;f;g')

  结果

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值