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

Oracle SQL 單列函數完整參考手冊(一):字串、數學、日期、轉換與彙總

     編輯:Oracle 資料庫基礎

字串函數

函數說明範例結果
ASCII(c)回傳字元十進位碼ASCII('A')65
CHR(n)回傳碼值對應字元CHR(65)'A'
CONCAT(s1,s2)串接兩字串CONCAT('010-','88888888')'010-88888888'
INITCAP(s)首字母大寫INITCAP('smith')'Smith'
INSTR(s1,s2,pos,occ)搜尋子字串位置INSTR('Oracle training','ra',1,2)9
LENGTH(s)字串長度(字元數)LENGTH('高千勁')3
LOWER/UPPER(s)全小寫/大寫UPPER('AaBb')'AABB'
LPAD/RPAD(s,len,pad)左/右填充至指定長度LPAD(RPAD('gao',10,'*'),17,'*')'*******gao*******'
LTRIM/RTRIM/TRIM(s)移除左/右/兩側指定字元(預設空白)TRIM(' gao ')'gao'
SUBSTR(s,pos,len)擷取子字串SUBSTR('13088888888',3,8)'08888888'
REPLACE(s,old,new)字串替換REPLACE('he love you','he','i')'i love you'
SOUNDEX(s)同音字串編碼(模糊比對)SOUNDEX('weather')=SOUNDEX('wether')TRUE

數學函數

函數說明範例結果
ABS(n)絕對值ABS(-100)100
ACOS/ASIN/ATAN(n)反三角函數(弧度)ACOS(-1)3.1415927
CEIL/FLOOR(n)向上/向下取整CEIL(3.14)4
COS/SIN/TAN(n)三角函數(弧度)COS(3.14159)-1
COSH/SINH/TANH(n)雙曲函數COSH(20)2.4258E8
EXP(n)e 的 n 次方EXP(1)2.71828
LN(n)自然對數LN(2.71828)1
LOG(b,n)以 b 為底對數LOG(2,4)2
MOD(m,n)餘數MOD(10,3)1
POWER(m,n)m 的 n 次方POWER(2,10)1024
ROUND(n,prec)/TRUNC(n,prec)四捨五入/截斷至精度ROUND(55.5), TRUNC(-55.5)56, -55
SIGN(n)正負號SIGN(-100)-1
SQRT(n)平方根SQRT(4)2

日期函數

函數說明範例
SYSDATE資料庫當前日期時間SYSDATE
ADD_MONTHS(d,n)日期加減月份ADD_MONTHS(SYSDATE,2)
MONTHS_BETWEEN(d1,d2)兩日期月份差MONTHS_BETWEEN(SYSDATE, hiredate)
NEXT_DAY(d,weekday)下一個指定週幾NEXT_DAY(SYSDATE,'FRIDAY')
LAST_DAY(d)該月最後一天LAST_DAY(SYSDATE)
ROUND(d,'MONTH')/TRUNC(d,'MONTH')日期四捨五入/截斷至月首ROUND(SYSDATE,'MONTH')
EXTRACT(YEAR/MONTH/DAY FROM d)擷取日期欄位EXTRACT(YEAR FROM SYSDATE)

轉換與條件函數

函數說明範例
TO_CHAR(d/fmt)日期/數值轉字串TO_CHAR(SYSDATE,'YYYY-MM-DD')
TO_DATE(s/fmt)字串轉日期TO_DATE('2023-01-01','YYYY-MM-DD')
TO_NUMBER(s/fmt)字串轉數值TO_NUMBER('$1,234.56','$9,999.99')
NVL(e1,e2)e1 為 NULL 回傳 e2NVL(comm,0)
NVL2(e1,e2,e3)e1 NULL 回傳 e3 否則 e2NVL2(comm,'Y','N')
NULLIF(e1,e2)e1=e2 回傳 NULL 否則 e1NULLIF(len,0)
COALESCE(e1,e2,...)回傳第一個非 NULLCOALESCE(comm, bonus, 0)
CASE WHEN ... THEN ... ELSE ... END條件邏輯CASE WHEN sal>5000 THEN 'High' ELSE 'Low' END
DECODE(e, s1, r1, s2, r2, ..., def)舊式條件判斷DECODE(deptno,10,'ACCT',20,'RES','OTH')

彙總與分析函數(簡介)

  • SUM, AVG, COUNT, MAX, MIN:基礎彙總。
  • GROUP BY ROLLUP/CUBE/GROUPING SETS:多維小計/總計。
  • GROUPING(col):判斷該列是否為彙總產生(0=明細, 1=彙總)。
  • RANK, DENSE_RANK, ROW_NUMBER:視窗排序。
  • LAG/LEAD, FIRST_VALUE/LAST_VALUE:跨列存取。

使用提醒

  1. 字串函數 NLS 相關(如 NLS_SORT 影響 UPPER、INSTR)。
  2. 日期運算隱含時區,跨地域應用建議用 TIMESTAMP WITH TIME ZONE。
  3. ROUND/TRUNC 對負數行為不同:ROUND(-55.5)=-56, TRUNC(-55.5)=-55。
  4. 大量資料轉換優先用 TO_CHAR/TO_DATE 格式模板,避免隱含轉換導致效能問題。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved