程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 查詢每個部門最低工資的雇員信息

查詢每個部門最低工資的雇員信息

編輯:DB2教程

查詢每個部門最低工資的雇員信息


如題:

查詢每個部門最低工資的雇員信息

關聯子查詢方法

1 查詢每個部門的最低工資

select deptno, min(sal) min_sal from emp group by deptno;

\


2 同最低工資關聯人員信息<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PHByZSBjbGFzcz0="brush:sql;">select e.* from emp e, (select deptno, min(sal) min_sal from emp group by deptno) s where e.deptno = s.deptno and e.sal = s.min_sal;
\

in關鍵字方法

in關鍵字是這種場景容易想到的一個方法,先查詢出部門的最低工資,然後匹配最低工資的雇員信息。


select * from emp where sal in (select min(sal) from emp group by deptno);

\

錯誤解析

in 方法存在一個問題,當兩部門中有多個相同的工資值時會產生錯誤的結果

現在講emp 中empno 為 1234 的用戶部門修改為 20

update emp set deptno = 20 where empno = 1234;

然後再使用in查詢方法查部門最低工資的員工信息

\

這時,empno 為 1234 的員工工資與deptno為10的部門最低工資相同,所以使用in查詢就查出了這個最低工資。

但是使用 關聯子查詢 的方法查詢,

綜上比較,在類似的查詢中,慎用in 關鍵字直接查詢,而要使用關聯子查詢按部就班的來查。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved