【SQL Server】Sql实现的字符串分割自定义函数:Split

分类:数据库| 发布:camnprbubuol| 查看: | 发表时间:2010/9/30

  1. Create FUNCTION [dbo].[SplitToTable]  
  2. (  
  3.     @SplitString nvarchar(max),  
  4.     @Separator nvarchar(10)=’ ’  
  5. )  
  6. RETURNS @SplitStringsTable TABLE  
  7. (  
  8. [id] int identity(1,1),  
  9. [value] nvarchar(max)  
  10. )  
  11. AS  
  12. BEGIN  
  13.     DECLARE @CurrentIndex int;  
  14.     DECLARE @NextIndex int;  
  15.     DECLARE @ReturnText nvarchar(max);  
  16.     SELECT @CurrentIndex=1;  
  17.     WHILE(@CurrentIndex<=len(@SplitString))  
  18.         BEGIN  
  19.             SELECT @NextIndex=charindex(@Separator,@SplitString,@CurrentIndex);  
  20.             IF(@NextIndex=0 OR @NextIndex IS NULL)  
  21.                 SELECT @NextIndex=len(@SplitString) 1;  
  22.                 SELECT @ReturnText=substring(@SplitString,@CurrentIndex,@NextIndex-@CurrentIndex);  
  23.                 INSERT INTO @SplitStringsTable([value]) VALUES(@ReturnText);  
  24.                 SELECT @CurrentIndex=@NextIndex 1;  
  25.             END  
  26.     RETURN;  
  27. END  

select * FROm dbo.SplitToTable(’111,b2222,323232,32d,e,323232f,g3222’, ’,’)

 

结果为

 

id          value

----------- ---------------------------------------

1           111

2           b2222

3           323232

4           32d

5           e

6           323232f

7           g3222

 

(7 行受影响)

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/archives/53.html