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

    */

  • 相关阅读:
    EJB>jboss数据源的配置 小强斋
    EJB>Session Bean 的生命周期 小强斋
    EJB>jboss数据源的配置 小强斋
    Windows XP 下安装Perl cpan模块
    列出所有已安装的perl模块
    简装版IE7.0升级版本
    暴笑三国之张飞日记
    常量和指针(Pointers and Constants)
    世界上最经典的感情短语
    学习C++的建议(Suggestions for learning C++)
  • 原文地址:https://www.cnblogs.com/accumulater/p/6244462.html
Copyright © 2011-2022 走看看