zoukankan      html  css  js  c++  java
  • Sql中split方法实现

    ALTER FUNCTION [dbo].[split](@Long_str varchar(8000),@split_str varchar(100))    
    RETURNS  @tmp TABLE(        
        ID 
    int IDENTITY PRIMARY KEY,      
        short_str 
    varchar(8000)    
    )    
    AS   
    BEGIN   
        
    DECLARE @long_str_Tmp varchar(8000),
       
    @short_str varchar(8000),
       
    @split_str_length int   
     
        
    SET @split_str_length = LEN(@split_str)    
     
        
    IF CHARINDEX(@split_str,@Long_str)=1 
             
    SET @long_str_Tmp=SUBSTRING(@Long_str,
         
    @split_str_length+1,
         
    LEN(@Long_str)-@split_str_length)
     
        
    ELSE
             
    SET @long_str_Tmp=@Long_str
     
        
    IF CHARINDEX(REVERSE(@split_str),REVERSE(@long_str_Tmp))>1    
            
    SET @long_str_Tmp=@long_str_Tmp+@split_str    
        
    ELSE   
            
    SET @long_str_Tmp=@long_str_Tmp    
     
        
    WHILE CHARINDEX(@split_str,@long_str_Tmp)>0    
            
    BEGIN   
                
    SET @short_str=SUBSTRING(@long_str_Tmp,1,
         
    CHARINDEX(@split_str,@long_str_Tmp)-1)    
                
    DECLARE @long_str_Tmp_LEN INT,@split_str_Position_END int   
                
    SET @long_str_Tmp_LEN = LEN(@long_str_Tmp)    
                
    SET @split_str_Position_END = LEN(@short_str)+@split_str_length    
                
    SET @long_str_Tmp=REVERSE(SUBSTRING(REVERSE(@long_str_Tmp),1,
         
    @long_str_Tmp_LEN-@split_str_Position_END))
                
    IF @short_str<>'' INSERT INTO @tmp SELECT @short_str    
            
    END   
        
    RETURN     
    END 
  • 相关阅读:
    .JDBC访问数据库的基本步骤是什么?
    文本的四种编码方式
    实现不在栈中产生对象
    字符串链接和复制
    堆和栈的区别(详细)
    产生随机数字
    利用返回引用来操作结构体
    inline 内联函数可以避免函数重定义问题
    五大内存分区,堆与栈的区别(转)
    Strategy模式
  • 原文地址:https://www.cnblogs.com/weblogical/p/1969798.html
Copyright © 2011-2022 走看看