我使用的是ADOConnection连接ACCESS数据库, 用ADOQuery对数据表进行操作, 我现在需要一个SQL语句中的取字符串字段中的子字符串的函数. 有人跟我说Substring但我在运行时提示我未知的错误, 那位大虾遇到过这种情况, 请指教一下. 马上给分!

解决方案 »

  1.   

    (1)用delphi的函数
    var
      s:string;
    begin
      s:=copy(adoquery1.fieldbyname('xxx').asstring,1,4);
      showmessage(s);
    end;
    (2)sql语句
    可以用left和right函数
      select left(字段1,4) from 表1
      

  2.   

    谢谢老大的指点, 但是我要取的是字段中间的字符啊, 不是两边的. 而且我目前正是用的Delphi里的函数, 但这样我就要把整个表遍历一边, 我想提高一下程序的运行速度, 所以想使用SQL里的函数, 能帮我查查资料吗?
      

  3.   

    select substring(name,1,4) from table1  
    表示取name字段里的前四个字符。
      

  4.   

    中间的这样取
    select substring(name,3,2) from table1  
    表示取name字段里的从第四个字符开始数的两个字符。如name为chinese
    则取得的结果为ne
      

  5.   

    adoquery1.Close;
      adoquery1.SQL.Clear;
      adoquery1.SQL.Add('select substring(Q_BCF_ID,1,3) from BTS_Q');
      adoquery1.Open;执行了, 还是提示===未制定的错误!
      

  6.   

    SELECT SUBSTRING('123456',3,2) SELECT LEFT(RIGHT('123456',4),2)
      

  7.   

    SELECT mid(字段名,起始,长度) from 表
      

  8.   

    SELECT MidB('123456', 5, 4)在Access 9.0 就是 Access 2000里试过可以的
      

  9.   

    SELECT MidB('123456', 5, 4)
    结果为“34”SELECT Mid('123456', 5, 2) 或 SELECT Mid('123456', 5, 4)
    结果为“56”
      

  10.   

    sql里取字符窜函数Left("asd",1)="a",Right("asd",1)="d",Mid("asdf",2,1)="s"
      

  11.   

    呵呵, 小子在这里谢过各位了. 用left和right应该是可以了. 马上给分!!