1、查詢每個部門工資最高的員工信息。
方法一:先查目標數據,然後和分組查詢結果進行 in 操作。
SELECT
e.emp_name, d.dept_name, e.salary
FROM
emp e inner join dept d ON e.dept_id = d.dept_id
WHERE
(e.dept_id, e.salary) IN (
SELECT
e.dept_id, max(e.salary) AS salary
FROM
emp e inner join dept d ON e.dept_id = d.dept_id
group by dept_id
);
方法二:先查目標數據,然後和分組查詢結果進行內連接。
select
e.emp_name, e.salary, d.dept_name
from
emp e inner join dept d on e.dept_id = d.dept_id
inner join (
select
dept_id, max(salary) salary
from emp
group by dept_id
) t on e.salary = t.salary and e.dept_id = t.dept_id;
結果
emp_name | salary | dept_name |
---|---|---|
李四 | 6000 | 研發部 |
劉六 | 8000 | 銷售部 |
2、當 A 列大於 B 列時選擇 A 列否則選擇 B 列,當 B 列大於 C 列時選擇 B 列否則選擇 C 列。
select (case when a>b then a else b end ) as fei, (case when b>c then b esle c end) as gege
from table_name