次の属性を含む EMPLOYEE という名前のテーブルがあるとします。
(EMPLOYEE_ID、LAST_NAME、FIRST_NAME、MIDDLE_NAME、JOB_ID、MANAGER_ID、給与)
N 番目に給与が高い図面の従業員の詳細を表示できますか 助けてください
ORDER BY
そしてLIMIT
どこに10
あるn + 1
:
SELECT
*
FROM
employees
ORDER BY
Salary DESC
LIMIT
10, 1
(最初のレコードが必要な場合は、 を使用しLIMIT 0, 1
ます。10 番目のレコードについては、LIMIT 9, 1
などを使用します)
try this
put n > 1 to get corresponding results
n=3 はあなたに 2 番目を与えなければなりませんhighest salary
SELECT * --This is the outer query part
FROM Employee Emp1
WHERE (N-1) = ( /* Subquery starts here */
SELECT COUNT(DISTINCT(Emp2.Salary))
FROM Employee Emp2
WHERE Emp2.Salary > Emp1.Salary)
テストテーブル
CREATE TABLE Test
(ID INT IDENTITY(1,1),
Salary INT)
INSERT INTO Test
VALUES (100), (200), (300), (400), (500)
SELECT * FROM Test
クエリ
SELECT TOP 1 Salary
FROM
(SELECT TOP 3 Salary FROM Test ORDER BY Salary DESC)q
ORDER BY Salary ASC
サブクエリ SELECT TOP Nth では、残りは同じままで、目的の結果が得られます