MSSQL: Zweithöchsten Wert ermitteln

Cpukiller

Grünschnabel
Moin,
folgendes Problem:
Ich benötige den zweitgrößten Wert einer Spalte, nur wie kann ich diesen auslesen? MAX liefert ja nur den höchsten zurück und MAX - 1 haut nicht hin, da die Nummerierung nicht linear ist.
Mein Ansatz ist nun, mit TOP 2 mir die beiden größten Werte ausgeben zu lassen, und dann mit einer Schleife nur den zweiten Wert auszulesen... doch das ist doch etwas umständlich :(
Kann man das noch irgendwie mit SQL lösen?
 
Also ich kenne mich zwar mit MS SQL nicht sonderlich aus, aber bei MySQL kann man nach Spalten sortieren.
Du könntest absteigend nach der gewünschten Spalte sortieren. Dann steht der höchte Wert an 1. und der zweithöchste an 2. Stelle.
Und dann gibt es bei MySQL noch einen LIMIT Befehl, mit dem man sagen kann, dass man nur eine bestimmte Anzahl Datensätze haben will, beginnend ab einem bestimmten Datensatz LIMIT 1,1 würde dann dann den 2. Datensatz liefern.
Vielleicht gibt es sowas ja auch für MS SQL.
ORDER BY und LIMIT heißt es bei MySQL, ... musst sonst mal schauen, ...

redlama
 
nein, limit gibt es bei mssql nicht, stattdessen muss man wie schon erwähnt die TOP Anweisung benutzen.
Das was du beschrieben hast ist genau meine Idee die ich hier beschrieben hatte... wollte halt noch gern andere Ansätze hören ;)
 
Zurück