oracle如何取两位,oracle取前几位的函数

oracle如何用abs()处理后保留2位

方法一:使用to_char的fm格式

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名网站空间、营销软件、网站建设、即墨网站维护、网站推广。

to_char(round(data.amount,2),'FM9999999999999999.00') as amount

不足之处是,如果数值是0的话,会显示为.00而不是0.00。

另一需要注意的是,格式中小数点左边9的个数要够多,否则查询的数字会显示为n个符号“#”。

解决方式如下:

select decode(salary,0,'0.00',(to_char(round(salary,2),'fm99999999999999.00'))) from can_do;

方法二:使用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

to_char(round(data.amount, 2))

end as amount_format

方法三:可以使用Oracle自带的参数设置

column amount format l9999999999.99

此方法的不足是,format中的小数点左面的9的个数要已知,否则会出现超过的数字显示为########的情况。

另外一个问题是,使用column时,设置生效是session级还是system级,需要注意。

也许某张表的数值列不总是要求所有的地方显示时,都是小数点后两位的格式,此时只能使用session级,但是有个数据库连接会话超时的问题,如果不是使用到system级,不建议使用该方法。

Oracle保留小数点后两位的几种方法

-- 使用 to_char 函数转换,转换为字符串

select to_char(9.87552, 'fm9999999.00') from dual;

-- 四舍五入

select round(9.552, 2) from dual;

oracle查2个字段相除取2位小数

select round(a/b,2) from table where c='T';

以上SLQ语句为,

从表table中查询符合c字段值为‘T’的值,

并将值a除以b,得到的结果如果包含小数,则保留两位小数点。

函数round(x[,y])介绍:

【功能】返回四舍五入后的值

【参数】x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y0则四舍五入为y位小数,如果y小于0则四舍五入到小数点向左第y位。

【返回】数字

与此函数相近的函数是trunc(x[,y]) ,返回截取后的值,用法同round(x[,y]),只是不四舍五入


文章名称:oracle如何取两位,oracle取前几位的函数
文章链接:http://pwwzsj.com/article/hscpdj.html