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

Oracle 單行函數大全:字串、數值、日期、轉換、通用 5 大類 30+ 函數速查手冊

     編輯:Oracle 資料庫基礎

Oracle 內建單行函數涵蓋字串操作、數學運算、日期處理、型別轉換、條件判斷等核心能力。本文整理 30+ 高頻函數語法、參數、回傳值與實戰範例,作為開發速查手冊。

一、字串函數

函數語法範例結果
ASCIIASCII(char)ASCII('A')65
CHRCHR(n)CHR(65)'A'
CONCATCONCAT(s1,s2)CONCAT('AB','CD')'ABCD'
INITCAPINITCAP(str)INITCAP('hello world')'Hello World'
INSTRINSTR(str, substr [,pos[,occ]])INSTR('oracle','a',1,2)0(第二個 a 不存在)
LENGTHLENGTH(str)LENGTH('中文')2(字元數)
LOWER/UPPERLOWER(str)/UPPER(str)UPPER('AbC')'ABC'
LPAD/RPADLPAD(str,n,pad)/RPAD(str,n,pad)LPAD('7',5,'0')'00007'
LTRIM/RTRIM/TRIMTRIM([LEADING|TRAILING|BOTH] c FROM str)TRIM(' abc ')'abc'
SUBSTRSUBSTR(str,pos[,len])SUBSTR('123456',3,2)'34'
REPLACEREPLACE(str,old,new)REPLACE('jack','j','J')'Jack'
SOUNDEXSOUNDEX(str)SOUNDEX('SMITH')'S530'(發音相似編碼)

二、數值函數

函數語法範例結果
ABSABS(n)ABS(-100)100
CEIL/FLOORCEIL(n)/FLOOR(n)CEIL(3.14)4
ROUND/TRUNCROUND(n[,d])/TRUNC(n[,d])ROUND(3.14159,2)3.14
MODMOD(m,n)MOD(10,3)1
POWERPOWER(m,n)POWER(2,10)1024
SQRTSQRT(n)SQRT(2)1.414...
SIN/COS/TANSIN(rad)等SIN(3.14159/2)1
ASIN/ACOS/ATAN反三角函數ACOS(-1)3.14159 (π)
EXP/LN/LOG指數/自然對數/對數LN(2.71828)1
SIGNSIGN(n)SIGN(-5)-1

三、日期函數(補充 94552 文章)

函數語法關鍵行為
ADD_MONTHSADD_MONTHS(d,n)月份加減,自動處理月底邊界
LAST_DAYLAST_DAY(d)該月最後一天
MONTHS_BETWEENMONTHS_BETWEEN(d1,d2)月差,同日期/月底→整數
NEXT_DAYNEXT_DAY(d,weekday)下一個指定週幾
ROUND/TRUNCROUND(d[,fmt])/TRUNC(d[,fmt])fmt: CC/YYYY/Q/MM/W/D/DAY/HH/MI
SYSDATE/SYSTIMESTAMP無參數伺服器/會話當前時間
NEW_TIMENEW_TIME(d,z1,z2)已棄用,用 AT TIME ZONE

四、轉換函數

函數語法範例
TO_CHARTO_CHAR(n|d [,fmt [,nls]])TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS')
TO_NUMBERTO_NUMBER(str [,fmt [,nls]])TO_NUMBER('$1,234.56','$9,999.99')
TO_DATETO_DATE(str [,fmt [,nls]])TO_DATE('2024-01-15','YYYY-MM-DD')
CASTCAST(expr AS type)CAST('123' AS NUMBER)
HEXTORAW/RAWTOHEX16進位<->RAWHEXTORAW('4142')

五、通用/條件函數

函數語法說明
NVLNVL(expr1, expr2)expr1 為 NULL 回傳 expr2
NVL2NVL2(expr1, expr2, expr3)expr1 不為 NULL 回傳 expr2,否則 expr3
COALESCECOALESCE(expr1, expr2, ...)回傳第一個非 NULL 參數(ANSI 標準)
NULLIFNULLIF(expr1, expr2)兩值相等回傳 NULL,否則 expr1
DECODEDECODE(expr, search, result [,search,result]... [,default])Oracle 專有 CASE 簡寫
CASECASE expr WHEN v1 THEN r1 ... ELSE rn ENDANSI 標準,支援搜尋條件 CASE WHEN cond THEN ...
GREATEST/LEASTGREATEST(expr1,expr2...)回傳最大/最小值(忽略 NULL)
VSIZEVSIZE(expr)內部表示位元組數
DUMPDUMP(expr [,fmt [,start [,len]]])資料型別、長度、內部碼診斷用

實戰組合範例

-- 格式化身分證字號:A123456789 -> A123-456-789
SELECT REGEXP_REPLACE(id, '^(.{1})(.{3})(.{3})(.{3})$', '\1-\2-\3-\4') FROM id_table;

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

-- 動態排序
SELECT * FROM products
ORDER BY CASE :sort_col WHEN 'PRICE' THEN price WHEN 'NAME' THEN name END;

收藏此手冊,單行函數組合拳解決 90% 資料清洗、格式化、業務計算需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved