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

    SQLSplit拆分字符串

    2016-06-07 14:57:06原创1547

    SQLServer拆分字符串到临时表 无 GOCreate function [dbo].[split](@SourceSql varchar(max),@StrSeprate varchar(10))returns @temp table(line varchar(max))asbegin declare @i int set @SourceSql = rtrim(ltrim(@SourceSql)) set @i = charindex(@StrSep

    SQLServer拆分字符串到临时表 <无>
    GO
    Create function [dbo].[split]
    (
    @SourceSql varchar(max),
    @StrSeprate varchar(10)
    )
    returns @temp table(line varchar(max))
    as
    begin
        declare @i int
        set @SourceSql = rtrim(ltrim(@SourceSql))
        set @i = charindex(@StrSeprate,@SourceSql)
        while @i >= 1
        begin
            if len(left(@SourceSql,@i-1))>0
            begin
                insert @temp values(left(@SourceSql,@i-1))
            end
            set @SourceSql=substring(@SourceSql,@i+len(@StrSeprate),len(@SourceSql)-@i)
            set @i=charindex(@StrSeprate,@SourceSql)
        end
        if @SourceSql <> ''
            insert @temp values(@SourceSql)
        return
    end
    
    -----测试
    GO
    Select * From dbo.split('asd,f,gh,jk,l',',')
    
    --SQL 递归
    Create function [dbo].[split]
    (
    @SourceSql varchar(max),
    @StrSeprate varchar(10)
    )
    returns @temp table(line varchar(max))
    as
    begin
    	;with roy as 
    	(
    		select COl2=cast(substring(@SourceSql+@StrSeprate,1,charindex(@StrSeprate,@SourceSql+@StrSeprate)-1) as nvarchar(max)),
    		Split=cast(substring(@SourceSql+@StrSeprate,charindex(@StrSeprate,@SourceSql+@StrSeprate)+1,len(@SourceSql+@StrSeprate)-charindex(@StrSeprate,@SourceSql+@StrSeprate)) as varchar(max))
    	union all
    		select COl2=cast(cast(substring(Split,1,charindex(@StrSeprate,Split)-1) as nvarchar(100)) as nvarchar(max)),
    		Split= cast(substring(Split,charindex(@StrSeprate,Split)+1,len(Split)-charindex(@StrSeprate,Split)) as varchar(max))
    		from Roy where charindex(@StrSeprate,Split)>1
    	)
    	Insert into @temp(line)select COl2 from roy option (MAXRECURSION 0)
        return
    end
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:DB2批量插入测试数据 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 深入理解MySQL索引优化器工作原理• 简单聊聊MySQL中join查询• MYSQL查询优化之有效加载数据_MySQL• MYSQL服务器内部安全性-安全数据目录访问[组图]_MySQL• 讲解MySQL服务器安装之后如何调节性能_MySQL
    1/1

    PHP中文网