首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 數值函數完整參考:ABS、SIGN、POWER、EXP、LN、LOG、MOD、ROUND、TRUNC、SQRT、三角函數

     編輯:Oracle 資料庫相關知識

Oracle 內建豐富的數學函數,支援基礎算術、指數對數、三角函數、雙曲函數與反三角函數。本文系統整理所有核心數值函數的語法、參數、返回值與實戰範例,適合開發與分析查詢時速查。

一、基礎算術與符號

二、指數與對數

函數功能範例結果
ABS(x)絕對值ABS(-100)100
SIGN(x)正負號:正→1、負→-1、零→0SIGN(-100), SIGN(0), SIGN(100)-1, 0, 1
MOD(x, y)餘數 (x 除以 y)MOD(23, 8), MOD(24, 8)7, 0
ROUND(x[, y])四捨五入,y 為小數位 (可負)ROUND(5555.6666, 2), ROUND(5555.6666, -2), ROUND(5555.6666)5555.67, 5600, 5556
TRUNC(x[, y])截斷 (不四捨五入),語法同 ROUNDTRUNC(5555.6666, 2), TRUNC(5555.6666, -2)5555.66, 5500
SQRT(x)平方根 (x≥0)SQRT(64), SQRT(10)8, 3.16227766
函數功能範例結果/說明
POWER(x, y)x 的 y 次方POWER(2.5, 2), POWER(20, -1)6.25, 0.05
EXP(y)e 的 y 次方 (e≈2.71828)EXP(3), EXP(0), EXP(-3)20.0855, 1, 0.049787
LN(y)自然對數 (以 e 為底),y>0LN(20.0855369), LN(0.049787)3, -3
LOG(x, y)以 x 為底 y 的對數,x>0, y>0LOG(16, 2), 1/LOG(16, 4)0.25, 2 (驗證換底公式)

關鍵關係:

  • EXP 與 LN 互為反函數:LN(EXP(y)) = y
  • POWER 與 LOG 關係:z = POWER(x, y) → y = 1 / LOG(z, x) (z, x > 0)

三、三角函數 (參數單位:弧度)

函數功能範例結果
SIN(x)正弦SIN(1.57079)1 (≈ π/2)
COS(x)餘弦COS(-3.1415927)-1 (≈ -π)
TAN(x)正切TAN(20), TAN(10)2.237, 0.648
ASIN(x)反正弦 (-1≤x≤1)ASIN(0.5)0.5236 (≈ π/6)
ACOS(x)反餘弦 (-1≤x≤1)ACOS(-1)3.14159 (≈ π)
ATAN(x)反正切ATAN(1)0.7854 (≈ π/4)

四、雙曲函數

五、角度與弧度轉換工具函數

-- 度轉弧度
CREATE OR REPLACE FUNCTION deg2rad(p_deg NUMBER) RETURN NUMBER IS
BEGIN RETURN p_deg * ACOS(-1) / 180; END;

-- 弧度轉度
CREATE OR REPLACE FUNCTION rad2deg(p_rad NUMBER) RETURN NUMBER IS
BEGIN RETURN p_rad * 180 / ACOS(-1); END;

-- 使用範例
SELECT SIN(deg2rad(90)) FROM dual;  -- 1
SELECT rad2deg(ASIN(1)) FROM dual;  -- 90

六、常見應用模式

  • 科學計算:POWER/EXP/LOG 組合實現複雜公式
  • 財務計算:ROUND(amount, 2) 標準化金額精度
  • 分頁/分桶:MOD(id, 100) 實現資料分片
  • 地理空間:三角函數計算距離、方位角 (搭配 SDO_GEOMETRY 更專業)
  • 隨機採樣:MOD(ABS(DBMS_RANDOM.RANDOM), 100) = 0 近似 1% 採樣

掌握這些函數的定義域、值域與精度特性,能在 SQL 層面直接完成大量數學運算,減少應用層往返,提升效能與一致性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
函數功能範例結果
SINH(x)雙曲正弦SINH(20)242582598
COSH(x)雙曲餘弦COSH(20)242582598
TANH(x)雙曲正切TANH(20)1 (趨近 1)