Uw vraag heeft specifiek betrekking op twee kolommen, maar ik ben situaties tegengekomen waarin ik GREATEST
. nodig had /LEAST
van meer dan twee kolommen. In die scenario's kunt u COALESCE
. gebruiken en breid de oplossing uit tot zoveel kolommen als u wilt.
Hier is een voorbeeld met drie kolommen a
, b
, en c
:
GREATEST(
COALESCE(a, b, c),
COALESCE(b, c, a),
COALESCE(c, a, b)
)
Merk op dat de kolomvolgorde van de COALESCE
verandert zodat elke invoerkolom het eerste element is COALESCE
ten minste een keer. De enige keer dat dit NULL oplevert, is wanneer alle invoerkolommen NULL zijn.
In de "algemene oplossing" het aantal COALESCE
uitspraken zijn gelijk aan het aantal invoerkolommen:
GREATEST(
COALESCE(col1, col2, col3, col4, ....),
COALESCE(col2, col3, col4, ...., col1),
COALESCE(col3, col4, ...., col1, col2),
COALESCE(col4, ...., col1, col2, col3),
COALESCE(...., col1, col2, col3, col4),
...
)