SQL> select substr('2A',1,1)  + 3 from dual; SUBSTR('2A',1,1)+3
------------------
                 5

解决方案 »

  1.   

    我指的并不是针对某个如“6A”这样的情况啊。而是一类。
    如:10002-9A
        10002-8A
        20003-7B
        30004-8c
          ……
    在这样的情况下。怎么才有一种通用的语句来截取“9A”,“8A”等等中的数字。
    针对某一中情况的话好解决。但是怎么样才能寻找一个通用的方法来解决?
      

  2.   

    其中的字母前面的数字也非一定是个位啊。也可能是十位,百位。所以substr('2A',1,1)这样的行不通。只能在个位上通用而已啊。
      

  3.   

    10002-324BBC  --格式,要求有中划线,后面的字母要为大写,如果小写自己改一下.select translate(substr('10002-324BBC',instr('10002-324BBC','-')+1),'ABCDEFGHIJKLMNOPQRSTUVWXYZ','                       ') from dual--得到324
      

  4.   

    这样更方便一些:
    select rtrim('6A','ABCDEFGHIJKLMNOPQRSTUVWXYZ')  ....