declare @a varchar(10)
set @a='1111;ad;fkg;34r4'select substring(@a,charindex(';',@a)+1,2)

解决方案 »

  1.   

    create function getstrofindex (@str varchar(8000),@index int =0)
    returns varchar(8000)
    as
    begin
      declare @str_return varchar(8000)
      declare @start int
      declare @next int
      declare @location int
      select @start =1
      select @next =1
      select @location = charindex(';',@str,@start)
      while (@location <>0 and @index > @next )
      begin
        select @start = @location +1
        select @location = charindex(';',@str,@start)
        select @next =@next +1
      end
      if @location =0 select @location =len(@str)+1 
      select @str_return = substring(@str,@start,@location -@start)
      if (@index <> @next ) select @str_return = '' 
      return @str_return
    end
    go
    ---调用:
    declare @a varchar(10)
    set @a='1111;ad;fkg;34r4'select dbo.getstrofindex(@a,1)
    select dbo.getstrofindex(@a,2)
    select dbo.getstrofindex(@a,3)
    select dbo.getstrofindex(@a,4)
      

  2.   

    大力,我在winSQL 的query写查询代码,但象substring charindex 这些函数好像不行呀??为什么?
      

  3.   

    查询分析器不行吗?我用的都可以(MS-SQL Server 2000)
      

  4.   

    但我用的是winSQL 呀!! 谁用过呀??