2009-04-15 10 views

答えて

3
SELECT TOP 1 employee.name, employee.salary from (
    SELECT TOP N employee.name, employee.salary 
    FROM employee 
    ORDER BY employee.salary DESC) 

これは上からN番目を与えます。

0
SELECT TOP N employee.name, employee.salary 
FROM employee 
ORDER BY employee.salary DESC 

+0

トップN番目の値だけではなく、すべてのトップN! – Dhana

+0

次に、あなたが望むものをもっと明確にしてください。 「TOP Nだけ」は、私にとって、TOP Nレコードのみを意味します。 ひとつのレコードだけが必要なときは、より明確になり、「TOP N」の最高給料を言う。 –

+0

まあ、n番目の意味 - ただ一つのレコード。ではない? – Dhana

0
SELECT TOP 1 Salary FROM 
(SELECT TOP(N) Salary FROM Employee 
ORDER BY Salary DESC) E 
2
WITH (
     SELECT e.*, ROW_NUMBER() OVER (ORDER BY employee.salary DESC) AS rn 
     FROM employee 
     ) AS q 
SELECT * 
FROM q 
WHERE rn = @n 
+0

私はROW_NUMBER()を使って派生テーブルを考えていましたが、これはほぼ同じです+1 –

-1
SELECT TOP 1 * FROM Employees 
    ORDER BY Employees.Salary DESC 
1
SELECT TOP 1 E.Salary 
FROM (SELECT TOP(N) Salary 
     FROM Employee 
     ORDER BY Salary DESC) E 
ORDER BY E.Salary