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  
  • 相关阅读:
    未能加载文件或程序集“System.EnterpriseServices, Version=4.0.0.0或2.0.0.0
    解决本地调用office组件成功,但是发布到IIS中出现的错误(检索COM类工厂中CLSID为{00024500-0000-0000-C000-000000000046}的组件时失败)
    未能找到类型或命名空间名称“Coco”(是否缺少 using 指令或程序集引用)
    SQL截取字段字符串的方法
    C# 128位AES 加密解密 (转)
    检索 COM 类工厂中 CLSID 为 {13C28AD0-F195-4319-B7D7-A1BDAA329FB8} 的组件时失败,原因是出现以下错误: 80040154
    js 获取时间比较全,留备用(zhuan)
    windows之如何把iso文件转换为VHD文件
    python之三行代码发送邮件
    RobotFramework第二篇之web自动化
  • 原文地址:https://www.cnblogs.com/tongdengquan/p/6090528.html
Copyright © 2011-2022 走看看