본문 바로가기
SQL/문제풀이

LeetCode 176. Second Highest Salary 오라클 풀이글

by wakestand 2020. 6. 8.
반응형

 

Second Highest Salary - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

LeetCode 176 Second Highest Salary 문제는

Employee 테이블에서

2번째로 큰 값을 가져오라는건데

 

2번째로 큰 값이 없을 경우에는

null 값을 나오게 하면 된다

 

근데 문제는

NVL을 써서 null을 주면 안되고

'null'도 안된다

허허..

 

MAX(값)을 사용할 경우

값이 없을 경우에 null이 나오게 되므로

무조건 MAX를 사용해야 한다

 

풀이방법은 아래와 같은데

 

WHERE 절에서 최대값을 구한 뒤

NOT IN안에 넣어 해당 값을 제외하고 난 뒤

최대값을 구하면 2번째 최대값을 구할 수 있고

 

2번째 최대값이 없다면

null이 나오게 된다

 

사용한 코드는 아래를 참고해주면 된다

 

SELECT MAX(SALARY) AS SecondHighestSalary
  FROM EMPLOYEE
 WHERE SALARY NOT IN(SELECT MAX(SALARY) FROM EMPLOYEE)
 -- 최대값 제외하고 차순위 값이 2위, 없을 경우에는 NULL
반응형

댓글