在写Oracle的Function,下面是在JAVA里的原函数,现在想把这部分放到Oracle的函数里去
if(Double.isNaN(cos2SigmaM)){
cos2SigmaM = 0 ;
}
ORACLE应该怎么写?
cos2SigmaM在Oracle的函数里我定义是是Float类型的,其实本来JAVA里是Double类型的,可是貌似Oracle里Function的参数不支持Double的,所以函数里也就一起用的Float
if(Double.isNaN(cos2SigmaM)){
cos2SigmaM = 0 ;
}
ORACLE应该怎么写?
cos2SigmaM在Oracle的函数里我定义是是Float类型的,其实本来JAVA里是Double类型的,可是貌似Oracle里Function的参数不支持Double的,所以函数里也就一起用的Float
with t1 as
(
select '123' a_name from dual union all
select '' from dual
)select nvl(a_name,0) a_name from t1 a_name
----------------
1 123
2 0
if(iterLimit == 0){
return Double.NaN;
}怎么在Oracle里体现?
那要是
if(iterLimit == 0){
return Double.NaN;
}怎么在Oracle里体现?
then
用nvl() 这个函数就OK了……
if(iterLimit == 0){
return Double.NaN;
}这个改成
if(iterLimit = 0){
then return 0.0/0.0;
}对么?
可以用decode函数with t1 as
(
select '123' a_name from dual union all
select '0' from dual
)select decode(a_name,'0','',a_name) a_name from t1 a_name
----------------
1 123
2 ''