Max wert aus 10 Spalten einer Zeile

Ralph Schröder

Neuer Benutzer
Beiträge
4
Ich will aus 10 Werten 1 Zeile den höchsten Wert ermitteln. (Aus Spalte1 ... Spalten 10)

Idealerweise eine flexible Function in die ich x Werte übergeben kann, und die mir den höchsten Werte wieder zurückgibt.

Kann mir jemand helfen.

Im voraus vielen Dank
 
Werbung:
Die Anforderung klingt mit einiger Wahrscheinlichkeit nach falschem Design der zugrundeliegenden Tabelle, aber sei's drum.

Es gibt "values" in MS SQL, das kann man so als table function nutzen:
Code:
select * from (values (1),(22),(3),(19)) as x(mx);
Wobei die numerischen Werte in dem Beispiel auch aus verschiedenen Spalten kommen können (und natürlich nicht numerisch sein müssen). Flexibel ist das also.

Daraus kann dann mit Standard SQL sowas abgefragt werden oder auch alles andere, was mit SQL auf Tabellen so geht.
Code:
select max(mx) from (values (1),(22),(3),(19)) as x(mx);

Wie man am ersten Beispiel sieht, wird also aus einer Zeile mit Werten zunächst eine Liste/Tabelle gemacht (Transformation), daraus dann (zweites Beispiel) das max() abgerufen. Wie das bei großen Datenmengen performt, weiß ich nicht. Mglw. gibt es auch eine smarte CSV Zerlegungsfunktion, die nicht extra eine Liste aufbaut.
 
Werbung:
VALUES ist tatsächlich eine der wenigen Möglichkeiten sowas zu machen und i.d.R. die performanteste Methode - Ich brauchte das neulich auch mal. Alles andere ist auch ziemlich frickelig, vor allem wenn der Code umfangreicher ist.
 
Zurück
Oben