1. 程式人生 > >關於Oracle中查詢的數字值的顯示格式需要保留小數點後兩位(或者三位,及其他位數)

關於Oracle中查詢的數字值的顯示格式需要保留小數點後兩位(或者三位,及其他位數)

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

相關推薦

關於Oracle查詢數字顯示格式需要保留小數點或者及其位數

方法一:使用to_char的fm格式,即: to_char(round(data.amount,2),'FM9999999999999999.00') as amount 不足之處是,如果數值是0的話,會顯示為.00而不是0.00。 另一需要注意的是,格式中小數點左邊9的個數要夠多,否則查詢的數字會顯示為n

input只能輸入數字小數點並且只能保留小數點

1.給文字框新增一個onkeyup=’clearNoNum(this)’點選事件 2.建立clearNoNum方法 function clearNoNum(obj) { obj.va

把數值改成保留小數點格式通用方法

 有問題可以掃碼加我微信,有償解決問題。承接小程式開發。 微信小程式開發交流qq群   173683895  、 526474645 ; 正文: 主要作用域數值顯示;請看原始碼: <!DO

HTML控制文字框只能輸入數字小數點並且只能保留小數點

1.給文字框新增一個onkeyup='clearNoNum(this)'點選事件2.建立clearNoNum方法function clearNoNum(obj) { obj.value = obj.value.replace(/[^\d.]/g,""); //清除"

DataFrame小數的保留小數點

已知b如表格所示,但是小數顯示太長,將其中的每個元素取小數點後兩位: 1 2 3 4 5 1 84.16867626 120.8809193 108.7217619 156.0338076 189.4679003 2 95

JS控制文本框只能輸入數字並且保留小數點

文本 只能輸入數字 rep max light 清除 style input paste <input type="text" placeholder="保留到小數點後兩位" maxlength="200" onkeyup="num(this)" onpaste

關於oracle數字類型

guarantee The eas sca ora osi specified numbers 其中 1.關於number類型。 以下是從其文檔中摘錄出的一句話: p is the precision, or the total number of significan

MATLAB轉換TXT灰度資料格式將灰度資料輸出為影象

在整理地圖測繪資料時,需要將資料先匯出,然後將資料轉化為影象資訊,使用MATLAB進行轉化遇到點問題,最後算是能出影象了,就將這一點經驗分享下。 首先看下匯出來的資料格式,匯出來的為TXT格式,其中橢圓是有效資料, 但是這種資料比較格魯的一點是,輸出的資料是40*400的

Oracle查詢一個表中欄 列 個數

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

ORACLE查詢語句的執行順及where部分條件執行順序測試 Oracle的一些查詢語句及其執行順序 Select 語句執行順序以及如何提高Oracle 基本查詢效率

Oracle中的一些查詢語句及其執行順序 原文地址:https://www.cnblogs.com/likeju/p/5039115.html 查詢條件:1)LIKE:模糊查詢,需要藉助兩個萬用字元,%:表示0到多個字元;_:標識單個字元。2)IN(list):用來取出符合列表範圍中的資料。3)NOT I

【二分查詢】在排序陣列查詢數字

排序數組裡很多二分查詢的題目,不能把排序這個性質浪費了。 面試題53-1:數字在排序陣列中出現的次數 統計一個數字在排序陣列中出現的次數。例如輸入排序陣列{1, 2, 3, 3, 3, 3, 4, 5}和數字3,由於3在這個陣列中出現了4次,因此輸出4。 二

Oracle查詢User下其他使用者表資訊

對於外包的人員來說,對於資料庫中的開放都是設定了許可權的,最近我就遇到了問題,比如說想要查詢使用者下面的某個使用者的表資訊,一開始不知道,後來進行了排查有所瞭解。 select * from使用者名稱。表名即可查詢出表的內容了 想要查詢當前登入使用者下的某個使用者

ORACLE 查詢鎖表和解鎖

1、查詢被鎖的資料物件 select object_name, machine, s.sid, s.serial#   from v$locked_object l, dba_objects o, v$session s  where l.object_id = o.obj

Oracle查詢沒有主鍵的表

SELECT * FROM user_tables A WHERE NOT EXISTS ( SELECT * FROM user_constraints b WHERE A .table_name = b.table_name AN

如何在Oracle 查詢一個表被其他數據庫對象引用[z]

選擇 條件 資料 一個 union all 同時 rom 整理 自己 這兩天老大讓我再oracle中把要替換的表被其他對象引用之處找出來,整理一份表,接到這個任務,我是一臉懵逼,怎麽找?大海撈針麽?問同事、查資料,自己研究,最後整理一下僅供大家參考,同時以備將來回顧。本篇只

如何在Oracle 查詢一個表被其他資料庫物件引用[z]

這兩天老大讓我再oracle中把要替換的表被其他物件引用之處找出來,整理一份表,接到這個任務,我是一臉懵逼,怎麼找?大海撈針麼?問同事、查資料,自己研究,最後整理一下僅供大家參考,同時以備將來回顧。本篇只涉及表被其他資料庫物件引用,不涉及外來鍵,想尋找外來鍵的,自己檢視下面附有的連結。 首先有下列幾種方式:

Controller方法返回其他型別需要新增jackson依賴

    第一個 第二個:    第三個         https://www.cnblogs.com/codejackanapes/p/5569013.html:json的部落格園 spri

oracle 資料庫 查詢數字型別 轉 String 時丟失小數點前的0

今天遇到一個奇葩的問題,當查詢資料庫的欄位為數字時,而javaBean定義的是String時,自動轉換得到的字串會丟失小數點前的 0 。 比如資料 是 0.88 , 查詢得到的字串為 .88 。解決方案: 使用 oracle的tochar() 函式,並指定位數。例子:to_c

Oracle查詢某個時間段的記錄時,sql的寫法

select * from Oracle.alarmLog where alarmtime between to_date('2007-03-03 18:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2007-09-04 18:00

oracle 查詢本年、本月、 本週的資料

     --本週 select * from 表 where time > sysdate - (to_char(sysdate-1,'D')) --本月 select * from