SELECT MAX(Salary) From Employee
WHERE Salary < ( SELECT Max(Salary) FROM Employee);
-- creating Employee table in Oracle
CREATE TABLE Employee (name varchar(10), salary int);
-- inserting sample data into Employee table
INSERT INTO Employee VALUES ('Rick', 3000);
INSERT INTO Employee VALUES ('John', 4000);
INSERT INTO Employee VALUES ('Shane', 3000);
INSERT INTO Employee VALUES ('Peter', 5000);
INSERT INTO Employee VALUES ('Jackob', 7000);
SELECT TOP 1 salary
FROM (
SELECT DISTINCT TOP 3 salary FROM Employee ORDER BY salary DESC
) AS temp
ORDER BY salary
/* sql 2nd highest salary employee */
select sal, ename
from emp
where sal =
(
select max(sal) from emp where sal <
(select max(sal) from emp)
)
----------------------------------------------- option 2
select *
from
(
select ename, sal, dense_rank() over(order by sal desc) rank
from emp
)
where rank =2;
SELECT E.Employers_name, E.dep_number, E.salary
FROM Employers E
WHERE 1 = (SELECT COUNT(DISTINCT salary)
FROM Employers B
WHERE B.salary > E.salary AND E.dep_number = B.dep_number)
group by E.dep_number