SQL> select substr('12345',1,3) from dual;SUB
---
123SQL> select substr('12345',instr('12345','3')) from dual;SUB
---
345SQL> select substr('12345',1,instr('12345','3')) from dual;SUB
---
123

解决方案 »

  1.   

    同意楼上的观点:
    SQL> select substr('1222',1,3) from dual;SUBSTR('1222',1,3)
    ------------------
    122
      

  2.   

    right(character_expression,number_expression)的意思应该是取character_expression的最右边的number_expression位吧?在Oracle中,应该可以通过下面的方式实现:
    substr(character_expression,length(character_expression) - number_expression + 1, number_expression)比如取'abcde fgh'的最后三位:SQL> select substr('abcde fgh',length('abcde fgh') - 3 + 1, 3) from dual;SUBSTR('ABCDEFGH',LENGTH('ABC
    ----------------------------------------------------------------
    fgh