première prise, la solution de bidouille, approche sentinelle (il est impératif que votre programme ne devrait pas permettre l'entrée de la valeur sentinelle):comparaison égalité SQL/inégalité des valeurs nullables
select coalesce(a, -2147483648) = coalesce(b, -2147483648) as is_equal -- a little postgresism
disons que vous avez oublié de bloquer la valeur sentinelle dans votre programme, l'utilisateur a entré -2147483648 dans le champ B et A est null. le code ci-dessus signale vrai, devrait signaler faux, ne devrait pas signaler vrai ou nul.
Quelle est la manière la plus concise de comparer l'égalité sur des champs nullables? A == B devrait simplement déclarer vrai ou faux seulement, peu importe si les champs sont valables ou non.
ne fonctionne pas sur postgresql (ou d'autres rdbms d'ailleurs). bastards mysql chanceux pour cet opérateur :-p de toute façon, +1 juste au cas où certains mysqlers chance sur ce problème – Hao
Au moins avec Oracle, les opérateurs habituels ne fonctionnent pas comme prévu avec des valeurs nulles ... – Thilo