單列字串函數
| 函數 | 用途 | 範例 |
| ASCII / CHR | 字元編碼雙向轉換 | ASCII('A')=65, CHR(65)='A' |
| CONCAT / || | 字串串接 | CONCAT('A','B')='AB' |
| INITCAP | 單字首字大寫 | INITCAP('oracle db')='Oracle Db' |
| INSTR | 搜尋子字串位置 | INSTR('Oracle','ra',1,2)=9 |
| LENGTH / LENGTHB | 字元/位元組長度 | LENGTH('中文')=2, LENGTHB=6 |
| LOWER / UPPER | 大小寫轉換 | UPPER('abc')='ABC' |
| LPAD / RPAD | 左右填充 | LPAD('9',5,'0')='00009' |
| LTRIM / RTRIM / TRIM | 修剪空白或指定字元 | TRIM(' AB ')='AB' |
| SUBSTR | 擷取子字串 | SUBSTR('13088888888',3,8)='08888888' |
| REPLACE | 字串替換 | REPLACE('he love you','he','i')='i love you' |
| SOUNDEX | 同音比對 | SOUNDEX('weather')=SOUNDEX('wether') |
數學函數
| 函數 | 說明 | 範例 |
| ABS / SIGN | 絕對值 / 正負號 | ABS(-5)=5, SIGN(-5)=-1 |
| CEIL / FLOOR | 向上/向下取整 | CEIL(3.1)=4, FLOOR(3.9)=3 |
| ROUND / TRUNC | 四捨五入 / 截斷 | ROUND(55.5)=56, TRUNC(55.5)=55 |
| POWER / SQRT | 冪次 / 平方根 | POWER(2,10)=1024, SQRT(64)=8 |
| MOD | 餘數 | MOD(10,3)=1 |
| EXP / LN / LOG | 指數/自然對數/任意底對數 | LOG(2,4)=2 |
| 三角函數 | SIN, COS, TAN, ASIN, ACOS, ATAN | ACOS(-1)=3.1415927 |
| 雙曲函數 | SINH, COSH, TANH | COSH(20)=2.4258E8 |
日期時間函數
| 函數 | 用途 | 範例 |
| SYSDATE / CURRENT_DATE | 資料庫/會話當前日期 | SYSDATE → 2024-01-15 14:30:00 |
| ADD_MONTHS | 月份加減 | ADD_MONTHS(SYSDATE,3) |
| LAST_DAY | 該月最後一天 | LAST_DAY(SYSDATE) |
| MONTHS_BETWEEN | 兩日期月差 | MONTHS_BETWEEN(d1,d2) |
| NEXT_DAY | 下一個指定週幾 | NEXT_DAY(SYSDATE,'FRIDAY') |
| ROUND / TRUNC (日期) | 日期捨入/截斷 | TRUNC(SYSDATE,'MM')=月初 |
| TO_CHAR / TO_DATE | 日期⇄字串轉換 | TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') |
| NEW_TIME | 時區轉換 | NEW_TIME(d,'PDT','GMT') |
轉換函數
TO_CHAR(date, 'fmt') -- 日期轉字串
TO_DATE(str, 'fmt') -- 字串轉日期
TO_NUMBER(str) -- 字串轉數值
HEXTORAW / RAWTOHEX -- 16進位⇄二進位
CHARTOROWID / ROWIDTOCHAR -- ROWID⇄字串
CONVERT(str, dest_cs, src_cs) -- 字符集轉換
彙總/群組函數
| 函數 | 說明 |
| AVG / SUM / COUNT | 平均/總和/筆數 (支援 DISTINCT) |
| MAX / MIN | 最大/最小值 |
| STDDEV / VARIANCE | 標準差 / 變異數 |
| GROUP BY / HAVING | 分組與分組過濾 |
條件/邏輯函數
-- DECODE (Oracle 專有)
DECODE(grade, 'A',4, 'B',3, 'C',2, 0)
-- CASE (ANSI 標準,支援布林判斷)
CASE grade
WHEN 'A' THEN 4
WHEN 'B' THEN 3
ELSE 0
END
-- NVL / NVL2 / COALESCE
NVL(comm, 0) -- NULL 給預設值
NVL2(comm, 'Y', 'N') -- 非NULL/NULL 給不同值
COALESCE(a,b,c) -- 回傳第一個非NULL
其他實用函數
USER / UID:當前用戶名/ID
USERENV('LANGUAGE'):會話語言環境
VSIZE(expr):運算式位元組大小
DUMP(expr, fmt, start, len):內部儲存格式檢視
EMPTY_BLOB() / EMPTY_CLOB():LOB 初始化
GREATEST / LEAST:多值最大/最小