在逻辑上,字段应该是字符串格式,而且是4位或者是9位的。
所以,
select substr(num,1,4) num1,decode(length(num),4,'',num) num2
from tablename;

解决方案 »

  1.   

    SQL> select substr('0001',1,4) num1,decode(length('0001'),4,'','0001') num2 from dual;NUM1 NUM2
    ---- ----
    0001 Executed in 0 secondsSQL> select substr('0001.0001',1,4) num1,decode(length('0001.0001'),4,'','0001.0001') num2 from dual;NUM1 NUM2
    ---- ---------
    0001 0001.0001Executed in 0.016 secondsSQL>
      

  2.   

    呵呵,再问一下,我现在给出的只有两级可以这么写,如果三级以上呢?
    比如说num值为0001或0001.0002或0001.0002.0003
    还和刚才一样
    当num=0001时,num1=0001,num2为空,num3为空
    当num=0001.0002时,num1=0001,num2=0001.0002,num3为空
    当num=0001.0002.0003时,num1=0001,num2=0001.0002,num3=0001.0002.0003
    小妹不会举一反三,还望各位大侠多加指点,谢谢谢谢!!!