类似这种 看看有没有启发
 SELECT substr('123/4567/1234598/098',1,INSTR('123/4567/1234598/098','/',1,1)-1) FROM dual;

解决方案 »

  1.   


    select REGEXP_SUBSTR('123/4567/1234598/098', '[^/]+', 1, LEVEL) STR
      from dual
    CONNECT BY LEVEL <= REGEXP_COUNT('123/4567/1234598/098', '/') + 1
           and prior dbms_random.value is not null;
      

  2.   


    select REGEXP_SUBSTR('123/4567/1234598/098', '[^/]+', 1, LEVEL) STR
      from dual
    CONNECT BY LEVEL <= REGEXP_COUNT('123/4567/1234598/098', '/') + 1
           and prior dbms_random.value is not null;2楼正解,一般的话还真想不到有这么个函数组合
      

  3.   


    select REGEXP_SUBSTR('123/4567/1234598/098', '[^/]+', 1, LEVEL) STR
      from dual
    CONNECT BY LEVEL <= REGEXP_COUNT('123/4567/1234598/098', '/') + 1
           and prior dbms_random.value is not null;
    and prior dbms_random.value is not null
    这个条件是不是可以去掉,我测试了下,有没有这个条件结果都是一样的
      

  4.   


    select REGEXP_SUBSTR('123/4567/1234598/098', '[^/]+', 1, LEVEL) STR
      from dual
    CONNECT BY LEVEL <= REGEXP_COUNT('123/4567/1234598/098', '/') + 1
           and prior dbms_random.value is not null;
    and prior dbms_random.value is not null
    这个条件是不是可以去掉,我测试了下,有没有这个条件结果都是一样的
    恩。单个字符是可以去掉