SQLServer Split函数

CREATE FUNCTION [dbo].[SqlServer_Split]
(@SourceSql NVARCHAR(MAX),@StrSeprate NVARCHAR(10))--@SourceSql:要截取的字符串,@StrSeprate:分隔符,例如:‘,’
RETURNS @temp TABLE(result NVARCHAR(100))
    --实现split功能 的函数
AS
BEGIN
    DECLARE @TempString NVARCHAR(50)= ''; --临时存放的字符串
    WHILE ( CHARINDEX(',', @SourceSql) <> 0 )
        BEGIN
            SET @TempString = SUBSTRING(@SourceSql, 1,CHARINDEX(',', @SourceSql) - 1); --截取左边第一个逗号的值(不包括,)。
			
            INSERT  @temp
                    ( result )
            VALUES  ( @TempString  -- result - nvarchar(100)
                      ); --把第一个逗号的左边插入临时表(不包括,)               
		    
            SET @SourceSql = STUFF(@SourceSql, 1, CHARINDEX(',', @SourceSql),''); --把逗号左边的数据替代为''(这个替代包括,),取右边的数据重新赋值给@SourceSql
            IF ( CHARINDEX(',', @SourceSql) = 0 )--
                BEGIN
                    INSERT  @temp
                            ( result )
                    VALUES  ( @SourceSql  -- result - nvarchar(100)
                              );
                    RETURN;
                END;
        END;
    RETURN;  
END
GO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值