Ich möchte eine Abfrage wie diese schreiben:
SELECT o.OrderId, MAX(o.NegotiatedPrice, o.SuggestedPrice)
FROM Order o
Aber das ist nicht die Art und Weise, wie die MAX
Funktion funktioniert, richtig? Es handelt sich um eine Aggregatfunktion, d. h. sie erwartet einen einzigen Parameter und gibt dann das MAX aller Zeilen zurück.
Weiß jemand, wie man es auf meine Art macht?
26 Stimmen
Das ist in den meisten anderen Datenbanken als
GREATEST
Funktion; SQLite emuliert die Unterstützung, indem es mehrere Spalten in derMAX
Aggregat.8 Stimmen
Mögliches Duplikat von stackoverflow.com/questions/71022/sql-max-of-multiple-columns
1 Stimmen
Bei der Suche nach einer Lösung für max(a, b) unten sollten Sie sich die Frage stellen, ob die Syntax oder die Berechnung für "a" und/oder "b" wiederholt werden soll. D.h. wenn "b" aus einer komplexen Berechnung mit viel Syntax abgeleitet wird, dann bevorzugen Sie vielleicht eine Lösung, bei der "b" nur einmal erscheint. Z.B. bedeutet die Lösung "IIF(a>b, a, b)" die Wiederholung von "b" - was syntaktisch hässlich sein könnte, aber die folgende Lösung bedeutet, dass "b" (und "a") nur einmal erscheint: SELECT MAX(WERT) FROM (SELECT a AS VALUE UNION SELECT b AS VALUE) AS T1
0 Stimmen
Weiterverfolgung von OMG Ponys ' ein guter Rat, in dem DBMS, das ich benutze, ist die Funktion
GREATER
stattGREATEST
. Schauen Sie also in der Hilfe Ihres DBMS nach. Wenn Sie das eine nicht finden, versuchen Sie das andere oder etwas Ähnliches.