查詢時過濾重復行DISTINCT關鍵字
如:
SELECT DISTINCT deptno,job FROM emp;
NULL運算處理:
NVL判斷
如:
SELECT ename,(sal+comm)*12 "annsal" FROM emp;--當comm為null時整個算式為空
SELECT ename,(sal+NVL(comm,0))*12 "annsal" FROM emp;--當comm為null時替換為0
LIKE匹配:
%任意個數字符;-單個字符
如:
SELECT * FROM emp WHERE ename LIKE 'S%';
SELECT * FROM emp WHERE ename LIKE 'S__T_';
排序ORDER BY 和 ASC 與 DESC
ASC與升序,可省缺;DESC降序
如:
SELECT * FROM emp ORDER BY sal ASC;
SELECT * FROM emp ORDER BY sal DESC;
--C先按照deptno升序,同deptno里按sal降序
SELECT * FROM emp ORDER BY deptno ASC,sal DESC;
排序GROUP BY 與 HAVING
GROUP BY分組排列,與ORDER BY一樣,其后跟字段次序,也就是分組優先次序;
SELECT AVG(sal),MAX(sal),deptno,job FROM emp GROUP BY deptno,job;
HAVING與GROUP BY聯合使用,HAVING 后跟條件,下面兩句效果是等同的:
SELECT * FROM (SELECT AVG(sal) asal,deptno FROM emp GROUP BY deptno) A WHERE A.asal>2000;
SELECT AVG(sal),DEPTNO FROM emp GROUP BY deptno HAVING AVG(sal)>2000;
注:組函數只能出現在選擇列表、HAVING、ORDER BY子句中;
SELECT語句中出現以下三者,其出現順序限定為GROUP BY、HAVING、ORDER BY;