2009-04-15 9 views

Antwort

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

Dies gibt den N-te von der Spitze.

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

?

+0

Top N'ter Wert allein, nicht alles top N !! – Dhana

+0

Dann sei klar, was du willst. "TOP N allein" bedeutet für mich nur die TOP N-Einträge. Wenn Sie nur einen einzigen Datensatz wollen, dann seien Sie klarer und sagen Sie 'das maximale Gehalt des' TOP N '. –

+0

gut, n'th bedeutet - nur ein Datensatz. nicht wahr? – 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

Ich dachte abgeleitete Tabelle mit ROW_NUMBER(), die hier etwa gleich +1 ist –

-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 
Verwandte Themen