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

Oracle 函數分類全景:字符、數值、日期、轉換、系統函數速查

     編輯:Oracle 資料庫基礎

Oracle 內置函數超過百餘個,按功能分為五大類。本文提供分類索引、代表函數、典型用法、系統上下文函數,構建函數知識地圖,遇到需求快速定位工具函數。

一、字符函數

LOWER, UPPER, LENGTH, SUBSTR, REPLACE, INSTR,
LPAD, RPAD, LTRIM, RTRIM, TRIM, TRANSLATE, ASCII, CHR
-- 典型:首字母大寫
SELECT UPPER(SUBSTR(ename,1,1)) || LOWER(SUBSTR(ename,2)) FROM emp;
-- 典型:按模式填充
SELECT LPAD(ename, 10, '*') FROM emp;  -- *****SMITH

二、數值函數

ROUND(n, [m]), TRUNC(n, [m]), MOD(m, n),
CEIL(n), FLOOR(n), ABS(n), POWER, SQRT, EXP, LN, LOG,
SIN, COS, TAN, SIGN
-- 典型:四捨五入/截斷多精度
SELECT ROUND(45.923,2), ROUND(45.923,0), ROUND(45.923,-1) FROM dual; -- 45.92, 46, 50
SELECT TRUNC(45.923,2), TRUNC(45.923,0), TRUNC(45.923,-1) FROM dual; -- 45.92, 45, 40

三、日期函數

SYSDATE, ADD_MONTHS, MONTHS_BETWEEN, NEXT_DAY, LAST_DAY,
ROUND(date, 'fmt'), TRUNC(date, 'fmt'),
NEW_TIME, EXTRACT
-- 典型:入職 8 個月後
SELECT * FROM emp WHERE SYSDATE > ADD_MONTHS(hiredate, 8);
-- 典型:入職天數
SELECT ename, TRUNC(SYSDATE - hiredate) "入職天數" FROM emp;
-- 典型:入職當月最後一天
SELECT hiredate, ename FROM emp WHERE LAST_DAY(hiredate) - 2 = hiredate;

四、轉換函數

TO_CHAR(date/num, 'fmt')   -- 日期/數值 → 字符串
TO_DATE(str, 'fmt')        -- 字符串 → 日期
TO_NUMBER(str, 'fmt')      -- 字符串 → 數值
-- 典型:日期格式化輸出
SELECT ename, TO_CHAR(hiredate, 'YYYY/MM/DD HH24:MI:SS'),
       TO_CHAR(sal, 'L99999.99') FROM emp;
-- 典型:按年/月過濾
SELECT ename, hiredate FROM emp WHERE TO_CHAR(hiredate, 'YYYY') = '1988';
SELECT ename, hiredate FROM emp WHERE TO_CHAR(hiredate, 'YYYY-MM') = '1988-12';

五、系統上下文函數

SYS_CONTEXT('USERENV', parameter)
-- 參數示例:
TERMINAL, LANGUAGE, DB_NAME, NLS_DATE_FORMAT, SESSION_USER
-- 典型:
SELECT SYS_CONTEXT('USERENV', 'LANGUAGE') FROM dual;   -- 語言/字符集
SELECT SYS_CONTEXT('USERENV', 'SESSION_USER') FROM dual; -- 當前用戶

六、Oracle 9i 分析函數入口

窗口函數(ROW_NUMBER, RANK, LAG/LEAD, SUM() OVER 等)屬於分析函數範疇,單獨成篇,詳見《Oracle 9i 分析函數實戰指南》。

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