【转】sqlserver字符串拆分(split)方法汇总

Java、.net等开发工具具有split功能,最近在Sqlserver中碰到这个需求。

方法1:动态SQL法

declare @string varchar(100),@sql varchar(1000)
set @string='1,2,3,4,5,6,7,8,9,10'
set @sql='select col='''+ replace(@string,',',''' union all select ''')+''''
PRINT @sql
exec (@sql)

当然,如果您的字符串是'1*2'或者其他格式,只需要在replace函数中修改符号即可。

--方法2:循环截取法

CREATE FUNCTION F_SplitSTR(
@string        varchar(8000),  --待分拆的字符串
@symbol        varchar(10)     --数据分隔符
)RETURNS @table TABLE(col varchar(100))
AS
BEGIN
    DECLARE @splitlen int
    SET @splitlen=LEN(@symbol)-1
    WHILE CHARINDEX(@symbol,@string)>0
    BEGIN
        INSERT @table VALUES(LEFT(@string,CHARINDEX(@symbol,@string)-1))
        SET @string=STUFF(@string,1,CHARINDEX(@symbol,@string)+@splitlen,'')
    END
    INSERT @table VALUES(@string)
    RETURN
END
GO

 

转载于:https://www.cnblogs.com/SunnyZhu/p/5761952.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值