- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的服务器维护,企业网站维护,网站维护服务
- (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
 
  
    
| 作者:黑客防线网安Oracle维护基地 来源:黑客防线网安Oracle维护基地 浏览次数:0 | 
16. 通过内部函数提高SQL效率.
     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.EMPNO AND H.HIST_TYPE = T.HIST_TYPE GROUP BY H.EMPNO,E.ENAME,H.HIST_TYPE,T.TYPE_DESC; 
通过调用下面的函数可以提高效率. 
FUNCTION LOOKUP_HIST_TYPE(TYP IN NUMBER) RETURN VARCHAR2 AS     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 VARCHAR2 
AS
    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 H GROUP BY H.EMPNO , H.HIST_TYPE; 
(译者按: 经常在论坛中看到如 ’能不能用一个SQL写出….’ 的贴子, 殊不知复杂的SQL往往牺牲了执行效率. 能够把握上面的运用函数解决问题的方法在实际工作中是非常有意义的)
| 我要申请本站:N点 | 黑客防线官网 | | 
| 专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |