购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

16.多个子查询排序

一个SQL语句包含多个子查询时,要应用以下规则:

1.子查询是完全关联或完全不关联时,就要按照最受限的放在最前面的顺序来编写,因为它们会按其编写的顺序进行处理。

2.如果一个SQL语句同时包含关联和非关联子查询,不论查询中的实际顺序是怎样的,总是先执行非关联子查询。

3.开发人员可以选择编写相同类型的子查询,并按他们选择的顺序排列谓词表,有时这会在运行时有不同的表现。与常规谓词相比,在SQL语句中从最受限到最不受限的顺序编写子查询对性能会有更大的影响,这在调优技巧#15中也有说明。

下面是非关联子查询的一个例子:

SELECT E. EMPNO, E.LASTNAME


FROM EMP E

WHERE E.EMPNO IN

(SELECT D.MGRNO

FROM DEPT D

WHERE D.DEPTNO LIKE'D%')


以下是关联子查询的一个例子:


SELECT E.EMPNO, E.LASTNAME

FROM EMP E

WHERE EXISTS

(SELECT 1

FROM DEPT D

WHERE D.MGRNO=E.EMPNO

AND D.DEPTNO LIKE'D%') SCw3xgd2+UP4ERrxFufPMuYm2aCDmNFybibxvaHb29JQ+dRulvVuLh3GtkDMc5sn


点击中间区域
呼出菜单
上一章
目录
下一章
×