SQL中的子查詢

目錄

WHERE子查詢

HAVING子查詢

FROM子查詢

SELECT子查詢

EXISIT子查詢

查詢薪資排名的員工信息(面試)

子查詢就是將一個查詢(子查詢)的結(jié)果作為另一個查詢(主查詢)的數(shù)據(jù)來源或判斷條件的查詢。常見的子查詢有WHERE子查詢,HAVING子查詢,F(xiàn)ROM子查詢,SELECT子查詢,EXISTS子查詢,子查詢要使用小括號();

WHERE子查詢

在WHERE子句中進(jìn)行使用查詢

SELECT*FROMEMPWHERESAL<(SELECTAVG(SAL)FROMEMP);

查詢薪資比平均薪資低的員工信息

HAVING子查詢

HAVING子句是對分組統(tǒng)計函數(shù)進(jìn)行過濾的子句,也可以在HAVING子句中使用子查詢

SELECTJOB,AVG(SAL)FROMEMPGROUPBYJOBHAVINGAVG(SAL)=(SELECTMAX(AVG(SAL))FROMEMPGROUPBYJOB);

查詢平均薪資最高的職位及其平均薪資

FROM子查詢

FROM子查詢就是將一個查詢結(jié)構(gòu)(一般多行多列)作為主查詢的數(shù)據(jù)源

SELECTJOB,AVG(SAL)FROM(SELECTJOB,AVG(SAL)ASAVGSALFROMEMPGROUPBYJOB)TEMPWHERETEMP.AVGSAL>2000;

查詢平均薪資高于2000的職位以及該職位的平均薪資

SELECT子查詢

SELECT子查詢在SELECT子句中使用查詢的結(jié)果(一般會和dual空表一起使用)

SELECT(SELECTCOUNT(*)FROMEMPWHEREJOB='SALESMAN')/(SELECTCOUNT(*)FROMEMP)FROMDUAL;

職位是SALESMAN的員工占總員工的比例

EXISIT子查詢

將主查詢的數(shù)據(jù)帶到子查詢中驗證,如果成功則返回true,否則發(fā)水false。主查詢接收true是就會顯示這條數(shù)據(jù),flase就不會顯示。

SELECT*FROMEMP EWHEREEXISIT (SELECT*FROMDEPT DWHEREE.DEPTNO=D.DEPTNO);

查詢有部門的員工信息

查詢薪資排名的員工信息(面試)

SELECT*FROMEMPWHERESAL=(SELECTMIN(SAL)FROM(SELECTROWNUM,SALFROM(SELECTSALFROMEMPGROUPBYSALORDERBYSALDESC)WHEREROWNUM<=n));

查詢薪資排名第n個員工的信息(包括并列排名)

思路:

1.先按薪資降序分組

2.再取前n名薪資中最低的薪資,即第n名的薪資。

3.最后在原表中找出薪資與最低薪資相同的員工信息。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容