我要截取一个字符段的后11为,,一个怎么截取啊?

解决方案 »

  1.   

    SELECT substr('asx1234567890a',length('asx1234567890a')-10,11) FROM dual;
      

  2.   


    SQL> select substr('bcdefghijklmnop',length('bcdefghijklmnop')-10,11) from dual;SUBSTR('BCDEFGHIJKLMNOP',LENGT
    ------------------------------
    fghijklmnop
      

  3.   


    还可以这么用:
    SELECT substr('asx1234567890a',-11) FROM dual;
      

  4.   

    需要去掉的左边的数字相对是固定的,可以考虑用ltrim 如大陆的去掉86,
      

  5.   

    那怎么决定是取9位还是11位呢?
    根据具体情况用decode应该可以解决
    如SELECT substr('asx1234567890a',decode('类别','香港',-11,'大陆',-9)) FROM dual;
      

  6.   

    你肯定有个字段标志是香港还是内地的吧
    你可以用decode判断那个字段.然后取9位
    或者11位.写法可以参照9楼.