• 技术文章 >数据库 >mysql教程

    SQL Server Split 函数

    2016-06-07 14:57:26原创672

    SQLServerSplit函数 无 源码与演示: 源码出处演示出处 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

    SQL Server Split 函数 <无>

    源码与演示:源码出处 演示出处

    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

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:求一段連續日期,但排除六日 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • MySQL学习之聊聊查询语句执行流程• hive和mysql的区别有哪些• mysql数据库的超级管理员名称是什么• mysql怎么连接数据库• mysql事务隔离级别有哪些
    1/1

    PHP中文网