sql >> データベース >  >> RDS >> Oracle

OracleSQL最低5つの給与を見つける

    Oracle 12c

    -- more than 5 rows being returned, if multiple rows 
    -- match the value of the 5th row
    SELECT e.ID_No, e.Name
      FROM Employees e
     ORDER BY e.Salary  
     FETCH FIRST 5 ROWS WITH TIES;
    
    -- only 5 rows being returned, even if multiple rows 
    -- match the value of the 5th row
    SELECT e.ID_No, e.Name
      FROM Employees e
     ORDER BY e.Salary  
     FETCH FIRST 5 ROWS ONLY; 
    
    -- NEXT clause may be replaced with FIRST  
    SELECT e.ID_No, e.Name
      FROM Employees e
     ORDER BY e.Salary 
     FETCH NEXT 5 ROWS ONLY; 
    

    Oracle 12cより前 :

    SELECT e.ID_No, e.Name
      FROM ( SELECT ID_No, Name, row_number() over (order by salary) seq FROM Employees ) e
     WHERE e.seq <= 5
     ORDER BY e.seq; 
    

    クエリは、トップNクエリ



    1. MySQLテーブルでは列の順序は重要ですか?

    2. 多くのCASEステートメントを使用したクエリ-最適化

    3. 結合内の重複フィールドを除外する

    4. MySqlでEF移行を使用できますか