--STEP 1:
SELECT sal FROM(
SELECT sal FROM emp ORDER BY sal DESC
)
WHERE ROWNUM < 3;
SAL
----------
5000
3000
--STEP 2:
select max(sal) as sal from emp where sal not in (
select sal from(
select sal from emp order by sal desc
)
where rownum < 3
);
SAL
----------
2975
--STEP 3:
WITH t AS(
SELECT MAX(sal) as sal FROM emp WHERE sal NOT IN (
SELECT sal FROM(
SELECT sal FROM emp ORDER BY sal DESC
)
WHERE ROWNUM < 3)
)
SELECT a.* FROM emp a join t b on a.sal = b.sal;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7566 JONES MANAGER 7839 02-APR-81 2975 20
No comments:
Post a Comment