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

    CREATE FUNCTION F_SQLSERVER_SPLIT(@Long_str NVARCHAR(MAX),@split_str NVARCHAR(100))    
    RETURNS  @tmp TABLE(        
        ID          inT     IDENTITY PRIMARY KEY,      
        short_str   NVARCHAR(MAX)    
    )    
    AS   
    BEGIN   
        DECLARE @short_str NVARCHAR(MAX),@split_str_length int,@split_str_Position_Begin int
        SET @split_str_length = LEN(@split_str) 
        SET @Long_str=REPLACE(REPLACE(@Long_str,CHAR(10),''),CHAR(13),'')
        IF CHARINDEX(@split_str,@Long_str)=1 
             SET @Long_str=STUFF(@Long_str,1,@split_str_length,'')
        IF CHARINDEX(@split_str,@Long_str)=0
            INSERT INTO @tmp SELECT @Long_str 
        ELSE
            BEGIN
                WHILE 1>0    
                    BEGIN   
                        SET @split_str_Position_Begin = CHARINDEX(@split_str,@Long_str)
                        SET @short_str=LEFT(@Long_str,@split_str_Position_Begin-1) 
                        IF @short_str<>'' INSERT INTO @tmp SELECT @short_str  
                        SET @Long_str=STUFF(@Long_str,1,@split_str_Position_Begin+@split_str_length-1,'')
                        SET @split_str_Position_Begin = CHARINDEX(@split_str,@Long_str)
                        IF @split_str_Position_Begin=0 
                        BEGIN
                            IF LTRIM(@Long_str)<>''
                                INSERT INTO @tmp SELECT @Long_str 
                            BREAK
                        END
                    END           
            END
        RETURN     
    END
  • 相关阅读:
    Numpy(0)
    C++(成员函数做友元)
    C++(类做友元)
    CUDA---Arrayfire---添加cuda kernel
    CUDA--Arrayfire--类型转换
    C++(友元)
    C++(const修饰成员函数)
    C++(空指针访问成员函数)
    第9章 整合前端
    第8章 离不开的数据库
  • 原文地址:https://www.cnblogs.com/renfeng/p/5912951.html
Copyright © 2011-2022 走看看