T-SQL字符串拆分的多种方式

SQL字符串拆分存储过程
本文介绍了一种在SQL Server中使用存储过程实现字符串拆分的方法,并提供了具体的T-SQL代码示例。通过创建名为ec_System_SplitString的存储过程,可以将由特定分隔符分隔的字符串拆分为单独的项并存入临时表中。

1、使用拆分SP或者函数。

 拆分方法:

Create PROCEDURE [dbo].[ec_System_SplitString]
    
@strs nvarchar(max),
    
@separator nchar(1)=','
AS
BEGIN
    
SET NOCOUNT ON;

    
DECLARE @tbNames    table([Name] nvarchar(256NOT NULL PRIMARY KEY)
    
DECLARE @Num        int;
    
DECLARE @Pos        int;
    
DECLARE @NextPos    int;
    
DECLARE @Name        nvarchar(256);
    
SET @Num = 0;
    
SET @Pos = 1;

    
WHILE(@Pos <= LEN(@strs))
    
BEGIN
        
SELECT @NextPos = CHARINDEX(@separator@strs,  @Pos)
        
IF (@NextPos = 0 OR @NextPos IS NULL)
            
SELECT @NextPos = LEN(@strs+ 1
        
SELECT @Name = RTRIM(LTRIM(SUBSTRING(@strs@Pos@NextPos - @Pos)))
        
SELECT @Pos = @NextPos+1

        
        
INSERT INTO @tbNames VALUES (@Name)
        
SET @Num = @Num + 1
    
END

    
SELECT [Name] FROM @tbNames

END

通地表变量来使用函数:

    declare @tbNames table([Name] nvarchar(256not null);
    
insert into @tbNames([Name])
        
exec ec_System_SplitString @Filter',';
    
select * from @tbNames;

 

编写中....

 

 

转载于:https://www.cnblogs.com/BillChen/archive/2008/08/18/1270188.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值