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

Oracle 常用函數速查手冊:單列函數、群組函數完整分類

     編輯:Oracle 資料庫基礎

Oracle 內建數百函數,本文精選開發最常用的單列函數(字元、數學、日期、轉換、通用)與群組函數,附語法、範例與實戰提示,供查閱與背誦。

一、單列函數

1. 字元函數

函數功能範例結果
LPAD(c1, n, c2)左填充 c2 至長度 nLPAD('Hi', 5, '*')***Hi
RPAD(c1, n, c2)右填充RPAD('Hi', 5, '*')Hi***
LOWER/UPPER/INITCAP轉小寫/大寫/首字母大寫INITCAP('hello world')Hello World
LENGTH(c1)字串長度(字元數)LENGTH('你好')2
SUBSTR(c1, pos, len)擷取子字串(pos 可負,從右算)SUBSTR('Hello', -3, 2)ll
INSTR(c1, c2, pos, nth)搜尋 c2 在 c1 第 nth 次出現位置INSTR('Mississippi', 'i', 1, 3)8
LTRIM/RTRIM(c1, set)移除左/右側出現在 set 的字元LTRIM('Miss', 'M')iss
REPLACE(c1, old, new)替換所有 old 為 newREPLACE('abc', 'a', 'X')Xbc
TRANSLATE(c1, from, to)逐字元對應替換TRANSLATE('abc', 'ab', '12')12c

2. 數學函數

函數功能範例結果
ABS(n)絕對值ABS(-5)5
ROUND(n, p)四捨五入至 p 位小數(p 可負)ROUND(123.456, -2)100
TRUNC(n, p)捨去至 p 位(不四捨五入)TRUNC(123.456, 2)123.45
CEIL/FLOOR(n)向上/向下取整CEIL(5.1) / FLOOR(-2.3)6 / -3
MOD(m, n)餘數MOD(10, 3)1
POWER(m, n)m 的 n 次方POWER(2, 10)1024
SQRT(n)平方根SQRT(16)4
SIGN(n)正負號SIGN(-5)-1

3. 日期函數(日期可直接加減數字 = 天數)

函數功能範例
SYSDATE當前日期時間SELECT SYSDATE FROM dual;
ADD_MONTHS(d, n)加減月份ADD_MONTHS(SYSDATE, -3)
LAST_DAY(d)該月最後一天LAST_DAY(SYSDATE)
MONTHS_BETWEEN(d1, d2)月份差(含小數)MONTHS_BETWEEN('2024-12-31', '2024-01-01')
NEXT_DAY(d, '星期')d 之後第一個指定星期NEXT_DAY(SYSDATE, 'FRIDAY')
NEW_TIME(d, tz1, tz2)時區轉換(舊函數,建議用 TZ_OFFSET)NEW_TIME(SYSDATE, 'GMT', 'EST')
ROUND/TRUNC(date, fmt)日期四捨五入/截斷至 fmt 單位ROUND(SYSDATE, 'MONTH')

4. 轉換函數

函數功能常用格式元素
TO_CHAR(date/num, fmt)轉字串YYYY-MM-DD, HH24:MI:SS, 999G999D99
TO_NUMBER(char, fmt)轉數字999D99, FM999.99
TO_DATE(char, fmt)轉日期YYYY-MM-DD, DD-MON-RR
CAST(expr AS type)ANSI 標準轉型CAST('123' AS NUMBER)

5. 通用條件函數

函數功能範例
DECODE(expr, s1, r1, s2, r2, ..., def)等值比較多重分支(類似 switch)DECODE(grade, 'A', '優', 'B', '良', '可')
CASE WHEN cond THEN res ... ELSE def END任意條件分支(功能更強)CASE WHEN sal>5000 THEN '高' ELSE '普' END
NVL(expr1, expr2)expr1 為 NULL 回傳 expr2NVL(comm, 0)
NVL2(expr1, expr2, expr3)expr1 不為 NULL 回傳 expr2,否則 expr3NVL2(comm, '有', '無')
COALESCE(e1, e2, ...)回傳第一個非 NULL 參數COALESCE(comm, bonus, 0)
NULLIF(e1, e2)e1=e2 回傳 NULL,否則 e1NULLIF(len, 0)

二、群組函數(聚合函數)

函數功能備註
AVG([DISTINCT|ALL] expr)平均值忽略 NULL
COUNT(*) / COUNT(expr)行數 / 非 NULL 個數COUNT(*) 最快
MAX/MIN([DISTINCT|ALL] expr)最大/最小值
SUM(expr)加總
STDDEV / VARIANCE標準差 / 變異數統計分析用
LISTAGG(expr, delim) WITHIN GROUP (ORDER BY ...)字串聚合(11gR2+)GROUP_CONCAT 替代
MEDIAN / PERCENTILE_CONT / PERCENTILE_DISC中位數 / 百分位數進階統計

實戰提示

  • DECODE 只能做等值比較,區間判斷請用 CASE。
  • NVL 兩參數型別需一致或可隱式轉換,否則報錯。
  • 群組函數預設忽略 NULL,COUNT(*) 計算所有列。
  • 大量資料聚合時,適當索引與 PARALLEL 提升效能。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved