zoukankan      html  css  js  c++  java
  • SQL Server 完美SPLIT函数

    -- SQL Server Split函数 
     --
     Author:zc_0101  
     --
     说明: 
     --
     支持分割符多字节 
     --
     使用方法  
     --
     Select * FROM DBO.F_SQLSERVER_SPLIT('1203401230105045','0')     
     --
     select * from DBO.F_SQLSERVER_SPLIT('abc1234a12348991234','1234')  
     --
     Select * from DBO.F_SQLSERVER_SPLIT('ABC',',')    
     
     
     
     
    CREATE   FUNCTION  F_SQLSERVER_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     
         
     IF   CHARINDEX ( @split_str , @long_str_Tmp ) = 0 
             
     Insert   INTO   @tmp   select   @long_str_Tmp  
         
     ELSE 
             
     BEGIN 
                 
     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            
             
     END 
         
     RETURN      
     
    END  
  • 相关阅读:
    常见移动端兼容性问题
    FireFox和Safari兼容event.path
    ts, vconsle显示‘Unexpected strict mode reserved word’
    移动端H5 input输入完成后页面底部留白问题
    解决taro安装完成依旧无法识别taro命令
    jquery ajax 设置请求头header 参数
    [iOS]技巧集锦:UICollectionView在旋转屏幕后Cell中的约束不起作用或自动布局失效
    [iOS]技巧集锦:UICollectionView内容下沉64像素原因和解决方案
    [iOS]坑爹的ALAsset(Assets Library Framework)
    [原创]首次制作JQueryUI插件-Timeline时间轴
  • 原文地址:https://www.cnblogs.com/tongdengquan/p/6090528.html
Copyright © 2011-2022 走看看