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

Oracle 內建函數速查大全:數值、字串、轉換、群組、日期一次掌握

     編輯:Oracle 資料庫相關知識

整理 Oracle 最常用的內建函數分類速查表,附格式模式與實際範例,適合開發與 DBA 隨時查閱。

數值函數

函數說明範例
ABS(n)絕對值ABS(-15) = 15
MOD(m,n)餘數MOD(10,3) = 1
POWER(m,n)m 的 n 次方POWER(2,3) = 8
ROUND(m[,n])四捨五入至 n 位小數(預設 0)ROUND(1.567,2) = 1.57
TRUNC(m[,n])截斷至 n 位小數(預設 0)TRUNC(1.567,2) = 1.56

字串函數

函數說明範例
INITCAP(s)每單字首字母大寫INITCAP('hello world') = 'Hello World'
LOWER(s) / UPPER(s)全小寫 / 全大寫UPPER('abc') = 'ABC'
CONCAT(s1,s2) 或 s1 || s2串聯'AB' || 'CD' = 'ABCD'
LPAD(s,n[,pad])左填充至長度 nLPAD('9',3,'0') = '009'
RPAD(s,n[,pad])右填充至長度 nRPAD('9',3,'*') = '9**'
LTRIM(s[,set]) / RTRIM(s[,set])移除左/右側指定字元(預設空格)RTRIM('abc. ','. ') = 'abc'
REPLACE(s, search[,replace])替換/移除子字串REPLACE('abc','a','X') = 'Xbc'
SUBSTR(s, pos[,len])擷取子字串(位置從 1 起)SUBSTR('abcdef',3,2) = 'cd'
LENGTH(s)字元長度LENGTH('中文') = 2
INSTR(s1,s2[,pos[,occur]])搜尋 s2 在 s1 第 pos 位置後第 occur 次出現的位置INSTR('ababa','a',1,2) = 3

轉換函數

函數說明範例
NVL(expr1, expr2)expr1 為 NULL 回傳 expr2NVL(comm,0)
TO_CHAR(n|d [,fmt])數值/日期轉字串TO_CHAR(12345,'$99,999') = '$12,345'
TO_NUMBER(s [,fmt])字串轉數值TO_NUMBER('$12,345','$99,999') = 12345
TO_DATE(s [,fmt])字串轉日期TO_DATE('2024-01-15','YYYY-MM-DD')

TO_CHAR 數值格式元素

元素說明
9數字位(前導空格)
0前導零
$美元符號
L本地貨幣符號
.小數點
,千分位分隔

群組函數

函數說明
AVG([DISTINCT|ALL] expr)平均值
COUNT(*) / COUNT(expr)列數 / 非 NULL 個數
MAX / MIN最大/最小值
SUM總和
STDDEV / VARIANCE標準差 / 變異數

日期函數

函數說明範例
ADD_MONTHS(d, n)日期加 n 月ADD_MONTHS(SYSDATE,3)
LAST_DAY(d)該月最後一天LAST_DAY(SYSDATE)
MONTHS_BETWEEN(d1,d2)兩日期月份差MONTHS_BETWEEN(d1,d2)
NEXT_DAY(d, '星期')d 之後指定星期的日期NEXT_DAY(SYSDATE,'FRIDAY')
SYSDATE / SYSTIMESTAMP當前日期/時間戳
ROUND(d[,fmt]) / TRUNC(d[,fmt])日期四捨五入/截斷TRUNC(SYSDATE,'MM') = 本月 1 號

常用日期格式模式

模式意義範例
YYYY / YY4/2 位年2024 / 24
MM / MON / MONTH月份數字/縮寫/全名01 / JAN / JANUARY
DD / DY / DAY日期/星期縮寫/全名15 / MON / MONDAY
HH24 / HH1224/12 小時制14 / 02
MI / SS分 / 秒30 / 59
AM / PM上午/下午標記PM
FM前綴:抑制前導零/空格FMMONTH → 'JANUARY'
TH / SP序數/拼寫後綴DDTH → '15TH'

實用組合範例

-- 金額格式化
SELECT TO_CHAR(salary, 'L999,999.00') FROM employees;

-- 計算年齡
SELECT FLOOR(MONTHS_BETWEEN(SYSDATE, birth_date)/12) AS age FROM employees;

-- 本月第一天 00:00:00
SELECT TRUNC(SYSDATE, 'MM') FROM dual;

-- 移除字串前後空格
SELECT TRIM('  hello  ') FROM dual;  -- 10g+ 支援 TRIM
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved