oracle using DECODE function to reduce the processing time

DECODE function using repeated scans of the same recording or avoid repeating the same connection table.

E.g:

   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%’;

You can use the DECODE function efficiently obtain the same results

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%’;

Similar, DECODE function can also be used in GROUP BY and ORDER BY clause.

Guess you like

Origin www.cnblogs.com/fanweisheng/p/11124309.html