2009-04-15 5 views

Répondre

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

Cela donne le Nième du haut.

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

?

+0

Top N'th valeur seule, pas tout en haut N !! – Dhana

+0

Ensuite, soyez plus clair sur ce que vous voulez. «TOP N seul» signifie pour moi seulement les enregistrements TOP N. Lorsque vous voulez juste un seul enregistrement, alors soyez plus clair, et dites «le salaire maximum du« TOP N ». –

+0

bien, n'th signifie - un seul enregistrement. n'est-ce pas? – 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

Je pensais table dérivée avec ROW_NUMBER(), qui est à peu près le même ici +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 
Questions connexes