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

ただし、値'deceased'を確認する必要がある場合があるため、ケースを使用します。

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 に答える