PLSQL函数返回小数点前的值

时间:2012-12-07 16:12:57

标签: oracle function plsql

我有一个功能,可以返回一个人的年龄或“死者”,如果他们已经死亡。因为它返回一个数字或者已经死亡,所以RETURN是一个VARCHAR2。

当返回年龄时,它返回如下值:72.93541936015413085912743681395289882628。有没有改变变量中的值只返回小数点前的字符?

由于

1 个答案:

答案 0 :(得分:2)

将其转换为数字:

floor(cast(column as float))

会将其四舍五入

ceil(cast(column as float))

将围捕它

round(cast(column as float))

将围绕它

如果你不得不把它作为一个字符串发回去,那么把它丢回来

 cast(round(cast(column as float)) as varchar2(50))

但您可能需要检查“已故”值,因此请使用案例:

select retVal =
case column
 when 'deceased' then 'deceased' -- pushing up daisies
 else cast(round(cast(column as float)) as varchar2(50)) --alive and kicking
end