第N高的薪水

编写一个 SQL 查询,获取 Employee 表中第 n 高的薪水(Salary)。

+----+--------+
| Id | Salary |
+----+--------+
| 1  | 100    |
| 2  | 200    |
| 3  | 300    |
+----+--------+

Code

CREATE FUNCTION GETNTHHIGHESTSALARY (
    N IN NUMBER)
  RETURN NUMBER
IS
  RESULT NUMBER;
BEGIN
  /* Write your PL/SQL query statement below */
   SELECT SALARY
     INTO RESULT
     FROM EMPLOYEE E1
    WHERE N-1=
    (SELECT COUNT (DISTINCT SALARY)
       FROM EMPLOYEE E2
      WHERE E2.SALARY>E1.SALARY
    ) AND ROWNUM=1 ;
  RETURN RESULT;
END;

猜你喜欢

转载自blog.csdn.net/sgs595595/article/details/89074824