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 
  • 相关阅读:
    [Usaco2005 open]Expedition
    舞会
    双栈维护之--Hdu4699 editor
    利用两个堆来维护第K大之Poj3784 Running Median
    Zju1061Web Navigation 网络导航
    Qsort求静态的第K大
    BZOJ2726【SDOI2012】任务安排(斜率优化Dp+二分查找)
    P2365 任务安排 斜率优化入门
    任务处理--斜率优化Dp入门
    结构体排序教学
  • 原文地址:https://www.cnblogs.com/weblogical/p/1969798.html
Copyright © 2011-2022 走看看