如果要把B表  C字段值“中国”的记录
             A字段所有以0017开头的记录,替换为0015,怎么写SQL语句?

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      tempStr,replaStr : String ; //存放临时变量
    begin
      with adoquery1 do
      begin
        close;
        sql.Clear;
        sql.Add('select * from test where a like ' + #39 + '0017' +#39);
        open;
      end;  while not     adoquery1.Eof do
      begin
        adoquery1.Edit;
        tempStr :=  adoquery1.FieldByName('a').AsString;
        replaStr := '0015' + copy(tempStr,5,length(tempStr));
        adoquery1.FieldByName('a').AsString :=replaStr ;
        adoquery1.next;
        adoquery1.Post;
      end;
    end;
      

  2.   

    update b set a='0015'+right(a,len(a)-4)  where right(a,4)='0017' and c='中国'
      

  3.   

    sql:= 'update authors set a=''0015''+substring(a,5,len(a)) where phone like ''0017%'' and c=''中国''';
      

  4.   

    先行谢过,忘了告诉各位,数据库是INTERBASE,运行的SQL语句,是在DELPHI自带的SQL EXPLORER里面运行的。经过测试,以上方法都不能达到目地,再求各位!!!