《第二章:查詢結果排序》
1:以指定的次序返回查詢結果
條件:顯示部門10中員工名字,職位和工資並按照工資升序排列:升序asc 降序desc
SELECT ename,job,sal FROM emp WHERE deptno='10' ORDER BY sal asc;
2:按照多個字段排序
表中按照DEPTNO的升序排列然后按照工資降序排列;
SELECT empno,deptno,sal,ename,job FROM emp ORDER BY deptno,sal DESC;
3:按照子串排序
按照字符串的某一部分對查詢結果排序,從EMP表中返回員工名字和職位,並且按照職位字段最后兩個字符排序
SELECT ename,job FROM emp ORDER BY SUBSTR(job,LENGTH(job)-2);
4:對字母數字混合的數據排序
現有字母數字混合的數據,按照數字或字符部分排序
CREATE view V AS SELECT ename||''||deptno AS data from emp select * from V
5:處理排序空值
EMP中根據comm排序結果但是這個字段可以為空值需要指定是否將空值排序在最后
SELECT ename,sal,comm FROM emp ORDER BY 3; (還可以根據升序,降序進行排序)
6:根據數據項鍵排序
根據某些條件邏輯排序,列如Job是TES根據comm來排序,否則根據SAL排序;
在ORDER BY子句中使用CASE表達式:
SELECT ename,sal,job,comm FROM emp ORDER BY CASE WHEN job='TAB' THEN comm ELSE sal END
使用CASE表達式來動態改變如何對結果排序,傳遞給ORDER BY的值類似這樣
SELECT ename,sal,job,comm, CASE WHEN job='TAB' THEN comm ELSE sal END AS ORDERED FROM emp ORDER BY 5