分析函數是 SQL 進階的分水嶺。本文作為入門鋪墊,回顧 SQL*Plus 環境設置、會話日期格式、替換變量、子查詢 INSERT、事務控制、字符串連接、通配符、單行函數分類與字符函數實戰,為後續窗口函數學習打基礎。
SET LINESIZE 500
SET PAGESIZE 100
-- 重新執行上一條:/ 或 RUN 或 R
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';
-- 默認:'DD-MON-RR'
INSERT INTO scott.emp(empno, ename, sal)
VALUES (&emp_id, '&emp_name', &emp_sal);
-- 可反復執行(/ 回車)多次輸入不同值
INSERT INTO managers (id, name, salary, hiredate)
SELECT empno, ename, sal, hiredate FROM emp WHERE job = 'MANAGER';
COMMIT/ROLLBACK 結束SAVEPOINT sp; → ROLLBACK TO sp; 部分回滾||% 多字符,_ 單字符,IS NULL 判空General / Character / Number / Date / Conversion
| 函數 | 示例 | 結果 |
|---|---|---|
| LOWER | SELECT LOWER(ename) FROM scott.emp; | smith, allen... |
| UPPER | SELECT * FROM scott.emp WHERE ename = UPPER('king'); | KING |
| INITCAP | SELECT INITCAP(ename) FROM scott.emp; | Smith, Allen... |
ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...) 分組排序RANK / DENSE_RANK 排名差異LAG / LEAD 訪問前後行SUM() OVER / AVG() OVER 移動窗口聚合分析函數讓 SQL 具備「行間感知」能力,是從寫查詢到寫高效查詢的關鍵躍升。