SQL QUERY最近聘请了员工

时间:2016-12-10 21:12:22

标签: sql oracle

我有表EMPLOYEES的名字和开始日期。我必须回到最近雇用的五名员工。我只能返回最近的。

SELECT NAME, FAMILY, STARTING_DATE
FROM EMPLOYEES
WHERE STARTING_DATE = (SELECT MAX(STARTING_DATE)FROM EMPLOYEES);

我已尝试使用ROW_NUMBER,但我认为以防无效。

1 个答案:

答案 0 :(得分:0)

使用ORDER BY

SELECT e.*
FROM (SELECT NAME, FAMILY, STARTING_DATE
      FROM EMPLOYEES
      ORDER BY STARTING_DATE DESC
     ) e
WHERE rownum <= 5;

虽然您可以使用窗口功能来实现此目的,但我没有看到这样做的任何优势。

我应该注意Oracle 12c提供了更简单的ANSI标准语法:

SELECT NAME, FAMILY, STARTING_DATE
FROM EMPLOYEES
ORDER BY STARTING_DATE DESC
FETCH FIRST 5 ROWS ONLY;