首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 基礎查詢、過濾與排序實戰指南

     編輯:Oracle 資料庫相關知識

基本查詢操作

Oracle 基礎查詢包含資料檢索、格式化輸出、算術運算與別名運用。以下為常用指令示範:

-- 查詢所有員工資料
SELECT * FROM emp;

-- 設定顯示格式
SET LINESIZE 120;
COL empno FOR 9999;
COL ename FOR A8;
SET PAGESIZE 30;

-- 算術運算與空值處理
SELECT empno, ename, sal, sal*12, comm, sal*12+comm FROM emp;
SELECT empno, ename, sal, sal*12, comm, sal*12+NVL(comm,0) FROM emp;

-- 別名用法(雙引號可含空格/特殊字元)
SELECT empno AS "員工編號", ename "姓名", sal 月薪, comm, sal*12+NVL(comm,0) 年收入 FROM emp;

-- 去除重複值
SELECT DISTINCT deptno FROM emp;
SELECT DISTINCT deptno, job FROM emp;

-- 字串串接
SELECT ename || '的薪水是' || sal FROM emp;

SQL 撰寫規範

  • 關鍵字不可縮寫或斷行,子句建議分行撰寫。
  • 善用縮排提升可讀性,SQL 不分大小寫。

資料過濾技巧

-- 日期格式設定與查詢
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD';
SELECT * FROM emp WHERE hiredate = TO_DATE('1981-11-17','YYYY-MM-DD');

-- 比較運算子與 BETWEEN
SELECT * FROM emp WHERE sal BETWEEN 1000 AND 2000;

-- IN 運算子
SELECT * FROM emp WHERE deptno IN (10,20);

-- 模糊查詢 LIKE
SELECT * FROM emp WHERE ename LIKE 'S%';        -- 以 S 開頭
SELECT * FROM emp WHERE ename LIKE '____';      -- 四個字元
SELECT * FROM emp WHERE ename LIKE '%_%' ESCAPE '\'; -- 含底線字元

-- 空值判斷
SELECT * FROM emp WHERE comm IS NOT NULL;

排序規則與 ORDER BY 進階

-- 基本排序
SELECT * FROM emp ORDER BY sal;
SELECT * FROM emp ORDER BY sal DESC;

-- 使用別名、欄位序號排序
SELECT empno, ename, sal, sal*12 年薪 FROM emp ORDER BY 年薪;
SELECT empno, ename, sal, sal*12 FROM emp ORDER BY 4;

-- 多欄位排序
SELECT * FROM emp ORDER BY deptno, sal;
SELECT * FROM emp ORDER BY deptno DESC, sal DESC;

-- 空值排序控制
SELECT * FROM emp ORDER BY comm DESC NULLS LAST;

排序規則總結

  1. 可依 SELECT 清單中的欄位名、別名或順序編號排序。
  2. 多欄位排序遵循「先排第一欄,相同才排第二欄」原則。
  3. 每欄若需降序皆須加 DESC。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved