数据库中有一列
field1
@123
@234
@456
现在想把所有的@都删掉,语句应该怎样写呢?

解决方案 »

  1.   

    oracle中可以用replace
    repalce(field1,'@','')
      

  2.   

    我用的是access,replace函数没有定义
    :(
    有别的办法么?
      

  3.   

    access最简单的办法就是打开mdb文件
    然后在这个字段搜索替换就行了
      

  4.   

    substring//相当于delphi: copy函数
    stuff;//SQL支持,不知Access
      

  5.   

    用DELPHI写一个小函数就行了:var
    tmpstr:String;
    begin
      adoquery1.close;
      adoquery1.sql.clear;
      adoquery1.sql.add('select * from table1');
      adoquery1.open;
      while not adoquery1.eof do
      begin
        tmpstr := adoquery1.fieldbyname('field1').asstring;
        tmpstr := copy(tmpstr,2,length(tmpstr)-1);
        adoquery1.edit;
        adoquery1.fieldbyname('field1').asstring:=tmpstr;
        adoquery1.post;
        adoquery1.next;
      end;上面的代码写了这么多,其实如果这个问题在SQL SERVER中一条SQL 语句就可以摆平了!一来我没有用过ACCESS的数据库, 所以不知道能不能像SQL SERVER中一样写;
    二来我想这样写也是给楼主一个思路,以后如果碰到问题不妨使用DELPHI的强大的处理功能来完成!
      

  6.   

    不行啊,field1中的字串长度不一样啊,有没有类似于replace的函数?
      

  7.   

    @的位置是否固定为第一位?如果是的话,可以这样:update yourTable
    set Field1 = Right(Field1, Len(Field1) - 1) 
    where Left(Field1, 1) = '@'
      

  8.   

    update 表名
    set 字段名=REPLACE(字段名,'@','')