我有一个函数可以返回一个人的年龄,或者如果他们已经死亡,则返回“已故”。因为它返回一个数字或已故,所以 RETURN 是一个 VARCHAR2。
返回年龄时,它会返回一个值,例如:72.93541936015413085912743681395289882628。无论如何要更改变量中的值以仅返回小数点前的字符?
谢谢
将其转换为数字:
floor(cast(column as float))
将其四舍五入
ceil(cast(column as float))
会把它四舍五入
round(cast(column as float))
将其四舍五入
如果您必须将其作为字符串发送回,请将其转换回
cast(round(cast(column as float)) as varchar2(50))
但您可能需要检查值 'deated' ,所以使用一个案例:
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