sql 用函数实现逗号分隔查询

由于给定内容仅为'eg:',缺乏关键信息,无法生成有效摘要。

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

 


 
  CREATE FUNCTION func_splitstringback  
    (  
      @str NVARCHAR(MAX) ,  --varchar(max):文本,代替text 大值数据类型最多可以存储2^30-1个字节的数据。
      @split VARCHAR(10)  
    )  
RETURNS @t TABLE ( c1 VARCHAR(100) )  ---返回一个t 表一个字段 C1 
AS   
    BEGIN  
        DECLARE @i INT  
        DECLARE @s INT  
        SET @i = 1  
        SET @s = 1  
        WHILE ( @i > 0 )  --循环 
            BEGIN      
                SET @i = CHARINDEX(@split, @str, @s)  ---从第一个位置获取,@str中包含@split参数的位置:(eg:charindex(',','1,23',1)
                IF ( @i > 0 )   
                    BEGIN  
                        INSERT  @t  
                                ( c1 )  
                        VALUES  ( SUBSTRING(@str, @s, @i - @s) )  --eg:SELECT SUBSTRING('1111,22225,3333', 1, 5 - 1) ==1111
                    END     
                ELSE   
                    BEGIN  
                        INSERT  @t  
                                ( c1 )  
                        VALUES  ( SUBSTRING(@str, @s, LEN(@str) - @s + 1) )  
                    END  
                SET @s = @i + 1     
            END  
        RETURN  ---返回
    END  
GO

eg:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值