0

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

返回年龄时,它会返回一个值,例如:72.93541936015413085912743681395289882628。无论如何要更改变量中的值以仅返回小数点前的字符?

谢谢

4

1 回答 1

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))

但您可能需要检查值 '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
于 2012-12-07T16:14:55.097 回答