Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment trouver la moindre colonne non nulle dans une ligne particulière en SQL ?

Malheureusement (pour votre cas), le comportement de LEAST a été modifié dans MySQL 5.0.13 (http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_least ) - il retournait NULL uniquement si tous les arguments sont NULL.

Ce changement a même été signalé comme un bogue :http://bugs.mysql.com/ bug.php?id=15610 Mais le correctif ne concernait que la documentation MySQL, expliquant le nouveau comportement et la rupture de compatibilité.

Votre solution faisait partie des solutions de contournement recommandées. Un autre peut utiliser l'opérateur IF :

SELECT IF(Col1 IS NULL OR Col2 IS NULL, COALESCE(Col1, Col2), LEAST(Col1,Col2))