2016-12-10 11 views
0

名前と開始日を持つテーブルEMPLOYEESがあります。私は最後に雇われた5人の従業員を返さなければなりません。私は最新のものだけを返すことができました。SQL QUERYは最近従業員を雇用しました

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

私はROW_NUMBERで試してみましたが、効果がないと思っています。

+2

は、私は、Oracle 12cはのシンプルな、ANSI標準の構文を提供していることに注意してください?例えば。同じ開始日の従業員5,6人:次に4,5,6人の従業員を表示しますか? –

答えて

0

使用ORDER BY

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

あなたは、この目的のためにウィンドウ関数を使用することもできますが、私はそうすることで任意の利点が表示されません。ネクタイの場合は何をすべきか

SELECT NAME, FAMILY, STARTING_DATE 
FROM EMPLOYEES 
ORDER BY STARTING_DATE DESC 
FETCH FIRST 5 ROWS ONLY; 
関連する問題