博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL优化常用方法16
阅读量:6702 次
发布时间:2019-06-25

本文共 798 字,大约阅读时间需要 2 分钟。

  1. 通过内部函数提高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;

转载地址:http://xkzlo.baihongyu.com/

你可能感兴趣的文章
优化事务处理
查看>>
iphone:Core Data:Where does a Managed Object Context Come From?
查看>>
.NET WinForm下StatusStrip控件如何设置分隔线及部分子控件右对齐
查看>>
spark groupByKey 也是可以filter的
查看>>
sqlmap使用笔记
查看>>
集合类接口IEnumerable,IEnumerator,ICollection,IList,IDictionary理解
查看>>
tkinter的GUI设计:界面与逻辑分离(二)-- 菜单栏
查看>>
Visual Studio DSL 入门 8---创建状态机元数据模型
查看>>
如何讓 iOS UIWebView 連線時傳送自訂 Cookie 的方法[转]
查看>>
LiDAR Textbook & Automated Road Network Extraction
查看>>
java并行体系结构
查看>>
探索ASP.NET MVC5系列之~~~5.缓存篇(页面缓存+二级缓存)
查看>>
ArcGIS Javascript API 1.2 Released
查看>>
命令行构建Unity项目
查看>>
C# ArrayList(数组列表)
查看>>
新近碰到的病毒(TR.Spy.Babonock.A)
查看>>
Eliminate Witches!
查看>>
ToString格式化
查看>>
HDU 4819 Mosaic D区段树
查看>>
js小技巧
查看>>