zoukankan      html  css  js  c++  java
  • 分割字符串表值函数

    实际工作中,我们通常会有这样的业务场景,需要把一大串字符串,用某个特定的字符串分割出来,生成一张表。一下方法就很好的解决了这个问题。

     1 IF EXISTS(SELECT 1 FROM SYSOBJECTS WHERE ID=OBJECT_ID('fn_Split') AND XTYPE='FN')
     2 BEGIN
     3     DROP FUNCTION dbo.fn_Split
     4 END
     5 GO
     6 --功    能:分割字符串表值函数
     7 --参    数:@String 分割的字符串
     8 --          @Delimiter 分隔符
     9 --返 回 值:表
    10 --创 建 人:maojw
    11 --创建时间:2014-09-24
    12 CREATE FUNCTION [dbo].[fn_Split](  
    13  @String nvarchar (max),  
    14  @Delimiter nvarchar (10)  
    15 )  
    16 RETURNS @ValueTable TABLE ([Value] NVARCHAR(MAX),[id] int)  
    17 BEGIN  
    18  DECLARE @NextString nvarchar(MAX),  
    19   @Pos int,  
    20   @NextPos int,  
    21   @CommaCheck nvarchar(1),
    22     @id int
    23 
    24 set @id=1  
    25    
    26  SET @NextString = ''  
    27  SET @CommaCheck = right(@String,1)   
    28    
    29  SET  @String = @String + @Delimiter  
    30    
    31   SET @Pos = CHARINDEX(@Delimiter,@String)  
    32   SET @NextPos = 1  
    33    
    34  WHILE (@pos <>  0)    
    35  BEGIN  
    36   SET @NextString = SUBSTRING(@String,1,@Pos - 1)  
    37     
    38   INSERT INTO @ValueTable ( [Value],[id]) VALUES (@NextString,@id)  
    39     
    40   SET @String = SUBSTRING(@String,@pos +1,LEN(@String))  
    41      
    42   SET @NextPos = @Pos  
    43   SET @pos  = CHARINDEX(@Delimiter,@String)  
    44 
    45     set @id = @id +1
    46  END  
    47    
    48  RETURN  
    49 END  
    50 GO
    View Code
  • 相关阅读:
    C# MATLAB混编(二)
    C# MATLAB混编(一)
    C#编程.循环的中断
    WPS 常用操作
    PowerDesigner 操作手册
    软件开发-零散问题
    代码优化
    layui 前端UI框架
    css 样式渲染
    linux 操作系统
  • 原文地址:https://www.cnblogs.com/mjw1124/p/3990175.html
Copyright © 2011-2022 走看看