大家好,我想查询一个字段,一共Varchar2(16)类型,现在的值是FY02600000000001至FY02690000054321我现在想说一下:FY02(60)这里的60可以变的,可以20,70,80,后面的数字是顺序增加,我想问一下怎么查询FY02这四位字母一样,后面10位数字顺序增加的. 
select * from aaa where vchcode >='FY02600000012345' and vchcode <=FY02690000054321' 也会查询出:FY02600000000004 的记录。请问怎么解决?

解决方案 »

  1.   

    你搞错了吧我这里是可以的:
    SQL> select * from test2
      2  ;STR
    ----------------
    FY02600000000001
    FY02600000000004
    FY02600000012345
    FY02690000054321SQL> select * from test2 where str >='FY02600000012345' and str <='FY02690000054
    321' ;STR
    ----------------
    FY02600000012345
    FY02690000054321
      

  2.   

    select * from aaa where substr(vchcode,6) >='00000012345' and sustr(vchcode,6) <='90000054321';
      

  3.   

    SQL> SELECT * FROM TABLE_NAME;VCHCODE
    ----------------
    FY02600000000004
    FY02600000012345
    FY02600000027864
    FY02690000054321
    FY02690000056666SQL> SELECT *
      2    FROM TABLE_NAME 13   WHERE SUBSTR(VCHCODE,1,4) = 'FY02'
     14     AND TO_NUMBER(SUBSTR(VCHCODE,7)) >= 12345
     15     AND TO_NUMBER(SUBSTR(VCHCODE,7)) <= 54321;VCHCODE
    ----------------
    FY02600000012345
    FY02600000027864
    FY02690000054321SQL> 
      

  4.   

    substr截取字符串比较吧 这样更好