Oracle取整函數(shù)用法案例
oracle涉及到取整的函數(shù)主要有4個,兩個單參數(shù)的(ceil和floor),兩個雙參數(shù)的(trunc和round)。雙參數(shù)不僅可以取整,也可以取到任一位小數(shù),甚至可以取到任一位整數(shù)。這些函數(shù)參數(shù)為正數(shù)時比較好理解,為負數(shù)時就要好好想一想了,不要用錯了,好在用于負數(shù)的機會不多。
1、ceil(n)取整(大),取比真值大的最小整數(shù),注意正負數(shù)的取值:
如ceil(251.0001)=252,ceil(-251.0001)=-251,ceil(-251.9999)=-251; select ceil(251.0000001) from dual; 結果:252
2、floor(n)取整(小),取比真值小的最大整數(shù),注意正負數(shù)的取值:
如floor(251.9999)=251,floor(-251.9999)=-252,floor(-251.0001)=-252;
這兩個函數(shù)功能正好相反。
記憶恨簡單:ceil,天花板,在上面,自然往高了取值;floor,地板,自然往低了取值。
3、trunc(n,p)取指定位置部分(截取),p指定截取數(shù)值的位置,p為0時表示截取整數(shù)部分,可以或略:
如trunc(251.0001)=251,trunc(-251.0001)=-251,trunc(-251.9999)=-251; 當p為正數(shù)時,表示截取時保留小數(shù)的位數(shù);當p為負數(shù)時,表示截取時保留整數(shù)的位置,例如: trunc(251.1234,2)=251.12,trunc(251.1234,-2)=200,trunc(251.1234,-1)=250;
4、round(n,p)取指定位置部分(四舍五入),同trunc類似,p指定截取數(shù)值的位置,p為0時表示截取整數(shù)部分,可以或略:
round(251.34)=251,round(251.56)=252,round(-251.34)=-251,round(-251.56)=-252; 當p為正數(shù)時,表示截取時保留小數(shù)的位數(shù);當p為負數(shù)時,表示截取時保留整數(shù)的位置,例如: round(251.1234,2)=251.12,round(251.1234,-2)=300,round(251.1234,-1)=250; 四舍五入時只考慮絕對值,不用關心正還是負。
記憶方法:trunc,截取,相當于刀切到那兒是哪兒,不拖泥帶水;round,圓,把后面的值圓回來,所以四舍五入。
下面是四個函數(shù)的取整案例:
select trunc(251.75),round(251.75),floor(251.000001),ceil(251.000001) from dual;
結果:251,252,251,252
select trunc(-251.75),round(-251.75),floor(-251.000001),ceil(-251.000001) from dual;
結果:-251,-252,-252,-251
5、最后順便說一下取余函數(shù)mod(n,m),n除以m后的余數(shù),例如:mod(91,30)=1
一般n,m是整數(shù),不過,小數(shù)也可以,例如:
select mod(90.32,26.3) from dual;
結果是:11.42
總結
到此這篇關于Oracle取整函數(shù)用法的文章就介紹到這了,更多相關Oracle取整函數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
在客戶端配置TNS測試報錯ORA-12170:TNS:連接超時
在Red Hat Enterprise Linux Server Releae 5.5 成功安裝ORACLE 10g 后,在客戶端配置TNS后,測試是否可以連接到數(shù)據(jù)塊服務器,結果報錯:ORA-12170:TNS:連接超時2012-12-12oracle中fdisk導致的ASM磁盤數(shù)據(jù)丟失的解決方法
oracle中fdisk 導致的ASM磁盤數(shù)據(jù)丟失 有需要的朋友可參考一下2012-10-10Oracle 解決ORA-00257 Archiver error 報錯問題解決
訂單投資交易環(huán)境進行 impdb 數(shù)據(jù)泵恢復數(shù)據(jù),執(zhí)行到一半,報錯終止,歸檔策略保留時間較長,或歸檔頻率過高,導致數(shù)據(jù)庫掛載盤符空間不足,本文給大家分享Oracle 解決ORA-00257 Archiver error 報錯問題解決,感興趣的朋友一起看看吧2023-12-12解決ORA-01747:user.table.column,table.column或列說明無效
這篇文章主要介紹了解決ORA-01747:user.table.column,table.column或列說明無效的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07oracle 動態(tài)AdvStringGrid完美示例 (AdvStringGrid使用技巧/Cells)
本方法實現(xiàn)用常量和常量數(shù)組完美創(chuàng)建和控制動態(tài)TAdvStringGrid。2009-06-06Oracle觸發(fā)器表發(fā)生了變化 觸發(fā)器不能讀它的解決方法(必看)
下面小編就為大家?guī)硪黄狾racle觸發(fā)器表發(fā)生了變化 觸發(fā)器不能讀它的解決方法(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04oracle中where 子句和having子句中的區(qū)別介紹
這篇文章主要介紹了在oracle中where 子句和having子句中的區(qū)別,本文通過sql語句給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2018-12-12