我現在要把一個版號進行更改,我的版號初始值是1.0   加入到1.9的時候 我還想繼續加  但是結果要變成1.10 再加變成1.11         還有一個功能就是進大版號 就1.1 如果進大版號的話 就變成2.0  這個功能怎么實現?  也就是把 小數點前后的值當成分別的值進行計算     謝謝各位

解决方案 »

  1.   

    小數點前后的值當成分別的值進行計算,这个是关键第一个问题:  '1.' 是固定的,后面的累加
    把你的列类型改成varchar2,没想到好方法,主要问题:如果得到小数部分,不损失精度
    Select 
    '1.'||(Mod('1.10',1)*power(10,length('1.10')-2)+1),'1.'||(Mod('1.19',1)*power(10,length('1.19')-2)+1)
    From dual
      

  2.   

    可以 考虑一下存成大小版号两个字段,分别加,多简单。
    现在可以 大的:substr(aa,0,instr(aa,'.'))+1
            小的:substr(aa,instr(aa,'.')+1,2)+ 1