최대 1 분 소요

문제 링크

정답

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
  SET N = N - 1;
  RETURN (
        SELECT DISTINCT salary
        FROM Employee
        ORDER BY salary DESC
        LIMIT 1 OFFSET N
  );
END

✅ Point

  • 사용자 정의 함수
    • 아래와 같은 형식으로 사용자 정의 함p수 선언
        CREATE FUNCTION 함수명(변수명 변수형) RETURNS 반환형
        BEGIN
        함수 내용;
        RETURN (
            결과값
        );
        END 
      
  • OFFSET을 이용하여 N번째 행 접근
    • 단, LIMIT 1 OFFSET N - 1 처럼 -1을 곧바로 offset에 쓴다면 syntax error 발생
    • SET N = N - 1; 으로 미리 선언하기