declare @sql varchar(4000)
set @sql='2: 100name2aa'
@sql=substring(@sql,CHARINDEX(@sql,'name'),CHARINDEX(@sql,'aa')

解决方案 »

  1.   

    最好的方法是设计的时候就把格式定好,比如:
    00004name1aa
    00100name2aa
    ...
      

  2.   

    @sql=substring(@sql,CHARINDEX(@sql,'name'),CHARINDEX(@sql,'aa')
                                       ~~~~~~~~这个不行吧
      

  3.   

    declare @sql varchar(4000)
    declare @num int
    declare @max int
    declare @min int
    declare @temp int
    declare @no char
    declare @temp1 int
    set @sql='100name2aa'
    set @no='1'
    set @num=0
    set @min=ASCII(0) 
    set @max=ASCII(9)
    set @temp=ASCII(9)
    set @temp1=charindex('aa',@sql)
    while (@temp>=@min and @temp<=@max)
    begin
    set @num=@num+1 
    set @temp=ASCII(substring(@sql,@num,1))
    endprint @num 
    print @temp1set @sql=substring(@sql,@num,@temp1-@num)
    print @sql
      

  4.   

    把 psxfghost 做成一个函数
    然后 update 就 ok
      

  5.   

    declare @str varchar(15),
                @str1 varchar(15),
                @i int
    Set @str1=''
    set @i=1
    set @str='123nameaa'
    while  @i<= len(@str)-2 
      begin
      if  substring(@Str,@i,1) not  in ('0','1','2','3','4','5','6','7','8','9')
      set @str1=@str1+substring(@Str,@i,1)
      set @i=@i+1
      end
    print @str1