效率低的:SELECT H.EMPNO,E.ENAME,H.HIST_TYPE,T.TYPE_DESC,COUNT(*)     FROM HISTORY_TYPE T,EMP E,EMP_HISTORY H     WHERE H.EMPNO = E.EMPNOAND H.HIST_TYPE = T.HIST_TYPEGROUP BY H.EMPNO,E.ENAME,H.HIST_TYPE,T.TYPE_DESC;
效率高的,用到了函数!!!!有二个定义的函数,LOOKUP_HIST_TYPE 和LOOKUP_EMPFUNCTION LOOKUP_HIST_TYPE(TYP IN NUMBER) RETURN VARCHAR2AS    TDESC VARCHAR2(30);    CURSOR C1 IS          SELECT TYPE_DESC         FROM HISTORY_TYPE        WHERE HIST_TYPE = TYP;BEGIN     OPEN C1;    FETCH C1 INTO TDESC;    CLOSE C1;    RETURN (NVL(TDESC,’?’));END; FUNCTION LOOKUP_EMP(EMP IN NUMBER) RETURN VARCHAR2AS    ENAME VARCHAR2(30);    CURSOR C1 IS          SELECT ENAME        FROM EMP        WHERE EMPNO=EMP;BEGIN     OPEN C1;    FETCH C1 INTO ENAME;    CLOSE C1;    RETURN (NVL(ENAME,’?’));END; SELECT H.EMPNO,LOOKUP_EMP(H.EMPNO),H.HIST_TYPE,LOOKUP_HIST_TYPE(H.HIST_TYPE),COUNT(*)FROM EMP_HISTORY HGROUP BY H.EMPNO , H.HIST_TYPE;
 我想问的是 当在select语句中使用函数时,怎么样体现了效率低的select语句的这段话
  WHERE H.EMPNO = E.EMPNO AND H.HIST_TYPE = T.HIST_TYPE
  内部是怎么样运行的,(运行的步骤是什么??)

 麻烦大家了!!!!!!