零件號2k03085-00-001,是零件表(partlist)的主鍵
案號是2003085,是案件表(orderlist)的主鍵,有wwDblookupCombo1來顯示該字段
它們都含'03085'這個相同的字符串
我要通過從零件號的第2到第6位置的子字串與案件號的第2到第6位置的子字串相等作為查詢條件來進行查詢.
adoquery1.sql.add('select * from partlist where substr(零件號,2,6)=substr(wwDblookupComBo1.text,2,6) ');
這樣的sql語句應該怎麼寫//////////???????

解决方案 »

  1.   

    adoquery1.sql.add('select * from partlist where substr(零件號,2,6)=substr(''' + wwDblookupComBo1.text + ''',2,6) ');
      

  2.   

    substr是錯的
    報錯說'substr是不認識的函數名'
      

  3.   


    adoquery1.sql.add('select a.*,b.* from partlist a,orderlist b where substr(a.零件號,2,6)=substr(wwDblookupComBo1.text,2,6) ');
      

  4.   

    若是SQLSERVER 数据库,可用到substring,可在后台写个小存储过程,传参数即可实现。。
      

  5.   

    查一下Delphi的字符串函数也可吗。
    网上有Delphi函数查询工具,搜一下吧。。
      

  6.   

    adoquery1.sql.add('select * from partlist where substr(零件號,2,6)='''+wwDblookupComBo1.text.substr(2,6) + ''');
      

  7.   

    adoquery1.sql.add('select * from partlist where substring(零件號,2,6)=substring('''+wwDblookupComBo1.text+''',2,6) );
      

  8.   

    在SQL 查询分析器中 按F1 一切都解决了!!
      

  9.   

    adoquery1.sql.add('select * from partlist where substring(零件號,2,6)=substring('''+wwDblookupComBo1.text+''',2,6) ');同意Little2000
    也可以
    adoquery1.sql.add('select * from partlist where substring(零件號,2,6)='''+Copy(wwDblookupComBo1.text,2,6) +'''');