Finden Sie 2. max Gehalt mit linq

8

Ich habe folgende SQL-Abfrage für die Suche nach 2. Max Gehalt.

%Vor%

Ich möchte es in Linq-Anweisung konvertieren.

    
santosh singh 15.12.2010, 11:08
quelle

3 Antworten

18

Ich denke, was Sie fragen, ist, den Angestellten mit dem zweithöchsten Gehalt zu finden?

Wenn ja, wäre das etwas wie

%Vor%

Wenn mehrere Mitarbeiter das gleiche Gehalt haben und Sie einen IEnumerable aller Mitarbeiter mit dem zweithöchsten Gehalt zurückgeben möchten, können Sie Folgendes tun:

%Vor%

(kudos an @ diceguyd30 für das Vorschlagen dieser letzten Verbesserung)

    
Ian Nelson 15.12.2010, 11:12
quelle
2

Sie können die Vergleichsklasse wie folgt definieren:

%Vor%

und benutze es wie folgt:

%Vor%

oder ohne Vergleich (in zwei Zeilen):

%Vor%

Bearbeiten: Wie Ani gesagt hat, um mit sql zu arbeiten, sollten Sie tun: var lst = myDataContext.Employees.AsEnumerable(); , aber wenn es für kommerzielle Software ist, ist es besser, TSQL zu verwenden oder einen anderen linq Weg zu finden.

    
Saeed Amiri 15.12.2010 11:31
quelle
0

Mit LINQ können Sie das dritthöchste Gehalt wie folgt finden:

%Vor%     
miltan Miltan 09.12.2017 21:40
quelle

Tags und Links