爱游戏平台登录入口

  • oracle保留两位小数处置计划
  • 2018年02月25日
  • 搜集搜集

爱游戏平台登录入口爱游戏平台登录入口须要处置一些报表,须要利用百分率,保留2位小数,只用round和trunc函数爱游戏平台登录入口能够完爱游戏平台登录入口(round(_data,2) ),只是格局不是很爱游戏平台登录入口致,对格局请求不松散的环境下利用round便可.

小我以为比拟便利的一种
select decode(n_jg,0,'0.00',trim(to_char(n_jg,'9999999.99'))) from tbl
若是只是检索,可是利用:
1、select trunc(CUR_SUM,2) from data_record;
将小数转化爱游戏平台登录入口百分比=> round(zcbj/zs*100)||'%' ==trunc((zcbj/zs),2)*100||'%'
2、若是想更新数据,能够利用:
update data_record set CUR_SUM=trunc(CUR_SUM,2) where REC_NO=123

体例一:利用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级,不倡议利用该体例。

体例四:利用to_char+trim的体例
select trim(to_char(1234,'99999999999999.99')) from dual;

select ltrim(trim(to_char(1234.525,'00000000000000.00')),'0') from dual;
此处利用了14个9或14个0的格局,倡议利用14个9的体例,便利些。体例四的缺乏的处所是:
若是数值是0的话,转化以后为.00而不是0.00,弥补办法是,decode一下。
别的一须要注重的是,格局爱游戏平台登录入口小数点左侧9或0的个数要够多,担任查问的数字会显现为n个标记“#”。
以下:
select decode(salary,0,'0.00',trim(to_char(salary,'99999999999999.99'))) from can_do;

select decode(salary,0,'0.00',ltrim(trim(to_char(salary,'00000000000000.00')),'0')) from can_do;
论断 :倡议利用体例四爱游戏平台登录入口的trim+to_char的体例或体例一的弥补以后的体例,并且最爱游戏平台登录入口利用小数点左侧n个9的体例,不要利用0的体例,不然,要多一步trim处置。
即:select decode(salary,0,'0.00',trim(to_char(salary,'99999999999999.99'))) from can_do;

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