zoukankan      html  css  js  c++  java
  • 根据字符分割字符串的三种写法

    Go

    --创建函数(第一版)

    create function [dbo].[m_split](@c varchar(2000),@split varchar(2))  

        returns @t table(col varchar(200))  

    as  

    begin  

          while(charindex(@split,@c)<>0)  

            begin  

              insert @t(col) values (substring(@c,1,charindex(@split,@c)-1))  

              set @c = stuff(@c,1,charindex(@split,@c),'')  

            end  

          insert @t(col) values (@c)  

          return  

    end

     

    --下面两种是在论坛看到高手们发的

    go

    --创建函数(第二版)(fredrickhu(小F))

    create function [dbo].[f_split](@s varchar(8000), @split varchar(10) )

    returns table

    as

     return

     (select substring(@s,number,charindex(@split,@s+@split,number)-number)as col

      from master..spt_values

      where type='p' and number<=len(@s+'a')

      and charindex(@split,@split+@s,number)=number)

     

    go

    --创建函数(第三版)(dawugui(爱新觉罗.毓华))

    create function [dbo].[d_split] (@inputstr varchar(8000),@seprator varchar(10))

    returns @temp table (a varchar(200))

    as

    begin

      declare @i int

      set @inputstr = rtrim(ltrim(@inputstr))

      set @i = charindex(@seprator, @inputstr)

      while @i >= 1

      begin

        insert @temp values(left(@inputstr, @i - 1))

        set @inputstr = substring(@inputstr, @i + 1, len(@inputstr) - @i)

        set @i = charindex(@seprator, @inputstr)

      end

      if @inputstr <> '/'

      insert @temp values(@inputstr)

      return

    end

     

    --测试示例

    declare @sql varchar(20)

    set @sql='A,B,C,D,E'

     

    select * from dbo.m_split(@sql,',')

    select * from dbo.f_split(@sql,',')

    select * from dbo.d_split(@sql,',')

     

    --运行结果(结果是相同的)

    /*

    col

    ---------

    A

    B

    C

    D

    E

    */

  • 相关阅读:
    iOS coreData
    具体解释首页被K后SEOer必做的三大排除方法!
    linux VIM基本命令
    0046算法笔记——【随机化算法】舍伍德随机化思想解决跳跃表问题
    android新浪分享实例
    DIV固定在页面某个位置,不随鼠标滚动而滚动
    迷宫问题算法分析
    ExtJs选择器
    第二篇Activity:2、任务和返回堆栈(Tasks and Back Stack)之基本介绍
    面试题,将数字依次按三角形输出,每行一个数字
  • 原文地址:https://www.cnblogs.com/accumulater/p/6244462.html
Copyright © 2011-2022 走看看