国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Oracle - oracle保留兩位小數解決方案

oracle保留兩位小數解決方案

2019-11-14 18:45oracle教程網 Oracle

公司需要處理一些報表,需要使用百分率,保留2位小數,只用round和trunc函數都可以實現(round(_data,2) ),只是格式不是很工整,對格式要求不嚴謹的情況下使用round即可

公司需要處理一些報表,需要使用百分率,保留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;

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久99精品国产麻豆婷婷 | 国产欧美精品一区二区色综合 | 中文字幕三区 | 久久精品中文字幕 | 国产精品尤物麻豆一区二区三区 | 亚洲天堂一区 | 男女全黄一级一级高潮免费看 | 亚洲国产一二区 | 精品视频在线免费观看 | 91av视频在线观看 | av一区二区在线观看 | 久久精品这里有 | 一区二区av在线 | 一级欧美一级日韩 | 91高清视频| 国产一区二区三区四区在线观看 | 欧美色综合天天久久综合精品 | 日韩在线视频观看 | 国产情侣一区二区三区 | 久久综合九色综合欧美狠狠 | 日日干夜夜干 | 在线黄色网 | 国产91短视频 | 久久国产精品一区二区三区 | 可以在线观看的av网站 | 日韩中文一区二区 | 干干人人 | av超碰| 国产精品久久久久无码av | 亚洲成a人 | 偷拍自拍第一页 | 国产精品一区在线观看 | 99亚洲精品 | 中文在线视频 | 一区二区不卡视频 | 日本不卡免费新一二三区 | 韩日在线观看视频 | 日韩欧美一二三区 | 中文字幕日韩有码 | 成人免费xxx在线观看 | 久久久免费国产 |