难得一遇的oracle字符转换number型!!
sql 语句: select jh,dwdm,to_char(tjrq,'yyyy-mm')as tjrq,yxcl,tjsj,kjsj,
to_number(
case when (kjsj>tjsj and kjrq>tjrq) then (kjrq-tjrq)||'.'||(kjsj-tjsj)
when (kjsj>tjsj and kjrq=tjrq) then replace(substr(0||'.'||(kjsj- tjsj),1,4),'..','.')
when kjsj=tjsj then (kjrq-tjrq)||''
when kjsj<tjsj then (kjrq-tjrq-1)||'.'||(24-(tjsj-kjsj))
end) tksj
from sc_Fx_05 结果:ora-01772 invalid number
改为
select jh,dwdm,to_char(tjrq,'yyyy-mm')as tjrq,yxcl,tjsj,kjsj,
to_number(
case when (kjsj>tjsj and kjrq>tjrq) then (kjrq-tjrq)||'.'||(kjsj-tjsj)
when kjsj=tjsj then (kjrq-tjrq)||''
when kjsj<tjsj then (kjrq-tjrq-1)||'.'||(24-(tjsj-kjsj))
end) tksj
from sc_Fx_05 结果ok
问题:在字符串进行replace之后 在to_number 出错,请高手指点!