Wie findet man das fünfthöchste Gehalt in einer einzigen Abfrage in SQL Server
Antworten
Zu viele Anzeigen?
Jayden
Punkte
2617
Erstellen Sie in SQL Server 2005 und 2008 eine Abfrage mit Rangunterauswahl und fügen Sie dann eine Where-Klausel hinzu, wobei der Rang = 5 ist.
select
*
from
(
Select
SalesOrderID, CustomerID, Row_Number() Over (Order By SalesOrderID) as RunningCount
From
Sales.SalesOrderHeader
Where
SalesOrderID > 10000
Order By
SalesOrderID
) ranked
where
RunningCount = 5
recursive
Punkte
80517
Diese funktionieren in SQL Server 2000
DECLARE @result int
SELECT TOP 5 @result = Salary FROM Employees ORDER BY Salary DESC
Die Syntax sollte ähnlich sein. Ich kann es im Moment nicht testen.
Oder Sie könnten eine Unterabfrage verwenden:
SELECT MIN(Salary) FROM (
SELECT TOP 5 Salary FROM Employees ORDER BY Salary DESC
) AS TopFive
Auch hier bin ich mir nicht sicher, ob die Syntax genau richtig ist, aber der Ansatz funktioniert.
Nicht registrierter Benutzer
Punkte
0
Ritesh Kumar
Punkte
11
user683393
Punkte
11
- See previous answers
- Weitere Antworten anzeigen