SQL優化常用方法8

inzaghi1984發表於2017-12-13
  1. 使用DECODE函式來減少處理時間
    使用DECODE函式可以避免重複掃描相同記錄或重複連線相同的表.

例如: SELECT COUNT(*),SUM(SAL) FROM EMP
WHERE DEPT_NO = 0020 AND ENAME LIKE ‘SMITH%`;
SELECT COUNT(*),SUM(SAL) FROM EMP
WHERE DEPT_NO = 0030 AND ENAME LIKE ‘SMITH%`;
你可以用DECODE函式高效地得到相同結果
SELECT COUNT(DECODE(DEPT_NO,0020,`X`,NULL)) D0020_COUNT,
COUNT(DECODE(DEPT_NO,0030,`X`,NULL)) D0030_COUNT,
SUM(DECODE(DEPT_NO,0020,SAL,NULL)) D0020_SAL,
SUM(DECODE(DEPT_NO,0030,SAL,NULL)) D0030_SAL
FROM EMP WHERE ENAME LIKE ‘SMITH%`;
類似的,DECODE函式也可以運用於GROUP BY 和ORDER BY子句中.


相關文章