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

Oracle 單行函數完整參考手冊:字串、數值、日期、轉換、通用函數

     編輯:Oracle 資料庫基礎

Oracle SQL 單行函數分類總覽

單行函數對每行資料獨立運算,返回單一值。分為:字串、數值、日期、轉換、通用五大類。

一、字串函數

函數語法說明範例
ASCIIASCII(char)返回字元 ASCII 碼ASCII('A')=65
CHRCHR(n)返回碼值對應字元CHR(65)='A'
CONCATCONCAT(s1,s2)串接兩字串 (等同 ||)CONCAT('A','B')='AB'
INITCAPINITCAP(str)首字母大寫其餘小寫INITCAP('smith')='Smith'
INSTRINSTR(str, substr, pos, nth)搜尋子字串位置INSTR('Oracle','ra',1,2)=9
LENGTHLENGTH(str)字串長度 (字元數)LENGTH('中文')=2
LOWER/UPPERLOWER/UPPER(str)大小寫轉換UPPER('abc')='ABC'
LPAD/RPADLPAD/RPAD(str, n, pad)左/右填充至指定長度RPAD('Hi',5,'*')='Hi***'
LTRIM/RTRIM/TRIMTRIM([BOTH|LEADING|TRAILING] trim_char FROM str)去除空白或指定字元TRIM(' AB ')='AB'
SUBSTRSUBSTR(str, pos, len)擷取子字串SUBSTR('Hello',2,3)='ell'
REPLACEREPLACE(str, old, new)字串替換REPLACE('ABC','B','X')='AXC'
TRANSLATETRANSLATE(str, from, to)字元級轉換TRANSLATE('ABC','AB','12')='12C'
SOUNDEXSOUNDEX(str)發音相似度編碼SOUNDEX('Smith')=S530

二、數值函數

函數語法說明範例
ABSABS(n)絕對值ABS(-5)=5
CEIL/FLOORCEIL/FLOOR(n)向上/向下取整CEIL(3.2)=4, FLOOR(3.8)=3
ROUNDROUND(n, [dec])四捨五入ROUND(3.14159,2)=3.14
TRUNCTRUNC(n, [dec])截斷 (不四捨五入)TRUNC(3.14159,2)=3.14
MODMOD(m, n)餘數MOD(10,3)=1
POWERPOWER(m, n)冪運算POWER(2,3)=8
SQRTSQRT(n)平方根SQRT(16)=4
EXP/LN/LOGEXP(n), LN(n), LOG(b,n)指數/自然對數/對數LN(2.718)=1
SIGNSIGN(n)正負號SIGN(-5)=-1
SIN/COS/TAN三角函數弧度制SIN(0)=0

三、日期函數

函數語法說明範例
SYSDATESYSDATE資料庫伺服器當前日期時間2024-01-15 14:30:00
CURRENT_DATECURRENT_DATESession 時區當前日期
SYSTIMESTAMPSYSTIMESTAMP含時區與毫秒的時間戳
ADD_MONTHSADD_MONTHS(d, n)加減月份ADD_MONTHS(SYSDATE,3)
MONTHS_BETWEENMONTHS_BETWEEN(d1, d2)兩日期月份差MONTHS_BETWEEN(d1,d2)
LAST_DAYLAST_DAY(d)該月最後一天LAST_DAY(SYSDATE)
NEXT_DAYNEXT_DAY(d, '星期X')下一個指定週幾NEXT_DAY(SYSDATE,'FRIDAY')
ROUNDROUND(d, 'fmt')日期四捨五入ROUND(SYSDATE,'MONTH')
TRUNCTRUNC(d, 'fmt')日期截斷TRUNC(SYSDATE,'YEAR')
EXTRACTEXTRACT(YEAR|MONTH|DAY FROM d)擷取日期元件EXTRACT(MONTH FROM SYSDATE)=1

四、轉換函數

函數語法說明
TO_CHARTO_CHAR(n|d, 'fmt', 'nls')數值/日期→字串
TO_DATETO_DATE(char, 'fmt', 'nls')字串→日期
TO_NUMBERTO_NUMBER(char, 'fmt', 'nls')字串→數值
CASTCAST(expr AS type)ANSI 標準轉換

常用日期格式元素:YYYY/MM/DD/HH24/MI/SS/DAY/MON/DY/WW/IW/CC/Q/RM/AM/PM/TZD/TZH/TZM

常用數值格式元素:9(選擇性數字)/0(強制零)/,(千分位)/.(小數點)/$(貨幣)/FM(抑制空白)

五、通用/條件函數

函數語法說明範例
NVLNVL(expr1, expr2)expr1 為 NULL 回傳 expr2NVL(COMM,0)
NVL2NVL2(expr1, expr2, expr3)expr1 不為 NULL 回傳 expr2 否則 expr3NVL2(MGR,'有','無')
NULLIFNULLIF(expr1, expr2)相等回傳 NULL 否則 expr1NULLIF(LEN,0)
COALESCECOALESCE(expr1, expr2, ...)返回第一個非 NULLCOALESCE(A,B,C)
DECODEDECODE(expr, search, result [, search, result]... [, default])等值比對分支DECODE(SEX,1,'男',2,'女','未知')
CASECASE expr WHEN v1 THEN r1 ... ELSE re ENDANSI 標準條件邏輯CASE GRADE WHEN 'A' THEN 100...
GREATEST/LEASTGREATEST/LEAST(expr1, expr2, ...)最大/最小值GREATEST(1,5,3)=5

實務效能提示

  • WHERE 條件避免對欄位使用函數 (導致索引失效),改寫為等值比對
  • 大量資料轉換優先用 CAST/TO_NUMBER 而非隱式轉換
  • DECODE/CASE 可減少多次掃描或自我聯結
  • 日期運算優先用 INTERVAL 語法 (如 SYSDATE + INTERVAL '1' DAY)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved