首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 函數進階實戰:REPLACE、ROUND/TRUNC 負參數、CEIL/FLOOR/MOD/ABS

     編輯:Oracle 資料庫基礎

承接基礎函數,本文深入講解 REPLACE、ROUND/TRUNC 負參數語義、CEIL/FLOOR 取整邊界、MOD/ABS 數學運算,並對比 ROUND 與 TRUNC 在負參數下的差異,幫助您精準掌握數值處理細節。

一、字符替換:REPLACE

SELECT REPLACE(ename, 'A', 'a') FROM emp;
-- 僅影響查詢顯示,不修改表數據

二、ROUND 與 TRUNC 負參數深度對比

ROUND(n, -k) / TRUNC(n, -k) 作用於**小數點左側第 k 位**(十位、百位...)。

表達式ROUND 結果TRUNC 結果解析
ROUND/TRUNC(555.55, -1)560550十位:ROUND 四捨五入,TRUNC 直接截斷
ROUND/TRUNC(555.55, -2)600500百位
ROUND/TRUNC(555.55, -3)10000千位

記憶口訣:負參數向左數位,ROUND 看下一位決策,TRUNC 直接歸零。

三、取整四兄弟:CEIL / FLOOR / ROUND / TRUNC

函數555.55-555.55語義
CEIL556-555向上取整(向 +∞)
FLOOR555-556向下取整(向 -∞)
ROUND(,0)556-556四捨五入(遠離零)
TRUNC(,0)555-555截斷小數(向零)

負數場景下四者行為差異最大,務必實測驗證。

四、數學運算:MOD 與 ABS

  • MOD(12, 3) = 0(12 被 3 整除)
  • MOD(10, 3) = 1
  • ABS(-3) = 3,ABS(3) = 3
  • DUAL:虛擬表,專用於函數測試/常量計算

五、綜合實戰:薪資調整試算

SELECT ename, sal,
       ROUND(sal * 1.1, -2)   AS round_hundred,   -- 四捨五入到百位
       TRUNC(sal * 1.1, -2)   AS trunc_hundred,   -- 截斷到百位
       CEIL(sal * 1.1 / 100) * 100 AS ceil_hundred -- 向上到百位
FROM emp;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved