Ich habe es versucht, bin aber gescheitert:
mysql> select max(1,0);
FEHLER 1064 (42000): In Ihrer SQL-Syntax ist ein Fehler aufgetreten. Überprüfen Sie das Handbuch Dies entspricht Ihrer MySQL-Serverversion für die richtige Syntax in der Nähe von '0)' in Zeile 1
LEAST
GREATEST
eine Unterabfrage als Parameter ausführen, damit ich Werte für eine Cirtain-Spalte erhalten kannselect greatest(date1, ifnull(date2, "0000-00-00 00.00:00")) from table1 where date2 is null;
bekommst du Datum1.GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
So ermitteln Sie den Maximalwert einer Spalte für mehrere Zeilen:
So ermitteln Sie den Maximalwert einer Reihe von Spalten, Literalen oder Variablen für jede Zeile:
quelle
GREATEST
. Jeder Nullwert bewirkt, dass die Funktion null zurückgibt. Um dies zu verhindern, können Sie tunGREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
Sie können die GREATEST- Funktion mit nicht nullbaren Feldern verwenden. Wenn einer dieser Werte (oder beide) NULL sein kann, verwenden Sie ihn nicht (Ergebnis kann NULL sein).
Sie können NULL auf Ihren bevorzugten Standardwert ändern (wenn beide Werte NULL sind).
quelle
select COALESCE(GREATEST(fieldA, fieldB),fieldA,fieldB) as maxValue
. Es ist überkompliziertGREATEST(COALESCE(column1, 0), COALESCE(column2, 0))