Einfache Math-Max-Funktion in MySQL

8

Wie finde ich das Maximum zweier expliziter Werte in MySQL? Etwas wie MAXIMUM (1, @ foo).

Es gibt Gruppenfunktionen wie MAX, MIN, AVG usw., die den Spaltennamen als Argument verwenden und mit Ergebnismengen arbeiten. Ist es möglich, zwei explizite Werte in eine Ergebnismenge zu konvertieren und diese Funktionen zu verwenden? Einige andere Möglichkeiten?

P.S .: Ich brauche eine Max-Funktion für eine meiner gespeicherten Prozeduren.

    
Alex 17.12.2009, 02:03
quelle

2 Antworten

24
  

Wie finde ich das Maximum zweier expliziter Werte in MySQL? Etwas wie MAXIMUM (1, @ foo).

Verwenden Sie die Funktion GREATEST :

%Vor%

... gibt den Wert zurück, der größer ist - wenn 1 größer ist als der Wert in @foo, erhalten Sie 1. Andernfalls erhalten Sie den Wert, der in @foo ist. Außerdem ist es nicht eine Aggregatfunktion.

Die Alternative wäre, eine CASE-Anweisung zu verwenden:

%Vor%

... weil CASE der ANSI-Standard ist - das funktioniert auf Oracle, MySQL, SQL Server, Postgres ...

    
OMG Ponies 17.12.2009, 02:34
quelle
2

Sie können IF(1 > @foo,1,@foo)

verwenden     
Brian Young 17.12.2009 02:07
quelle

Tags und Links