方法一:使用to_char的fm格式
不足之处是,如果数值是0的话,会显示为.00而不是0.00.
解决方式如下:
方法二:使用case when then else end进行各种情况的判断处理
case
when instr(to_char(data.amount), '.') 1 then
data.amount || '.00'
when instr(to_char(data.amount), '.') ◆ 1 = length(data.amount) then
data.amount || '0'
else
end as amount_format
方法三:可以使用Oracle自带的参数设置
另外一个问题是,使用column时,设置生效是session级还是system级,需要注意.
也许某张表的数值列不总是要求所有的地方显示时,都是小数点后两位的格式,此时只能使用session级,但是有个数据库连接会话超时的问题,如果不是使用到system级,不建议使用该方法.
--?使用?to_char?函数转换,转换为字符串
--?四舍五入
以上SLQ语句为,
从表table中查询符合c字段值为'T'的值,
并将值a除以b,得到的结果如果包含小数,则保留两位小数点.
函数round(x[,y])介绍:
【功能】返回四舍五入后的值
【参数】x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y0则四舍五入为y位小数,如果y小于0则四舍五入到小数点向左第y位.
【返回】数字
与此函数相近的函数是trunc(x[,y]) ,返回截取后的值,用法同round(x[,y]),只是不四舍五入