La réécriture EST DISTINCTE DE et N'EST PAS DISTINCTE DES Prédicats dans SQL Server 2008R2
Dans SQL Server 2008R2, la norme EST DISTINCTE DE et EST Les opérateurs NOT DISTINCT FROM ne sont pas pris en charge. Cela pose un problème aux utilisateurs qui ont besoin de comparer des valeurs et d'obtenir des résultats définitifs de Vrai ou Faux au lieu de l'Inconnu par défaut.
Alternatives de réécriture
Pour émuler le SI DISTINCT FROM et IS NOT DISTINCT FROM, les expressions suivantes peuvent être utilisées :
((a <> b OR a IS NULL OR b IS NULL) AND NOT (a IS NULL AND b IS NULL))
(NOT (a <> b OR a IS NULL OR b IS NULL) OR (a IS NULL AND b IS NULL))
Ces expressions déterminent effectivement si les valeurs ne sont pas égales ou si l'une ou l'autre des valeurs est nulle. Si tel est le cas, le résultat renvoyé est True ; sinon, c'est Faux.
Éviter les pièges courants
Il est important de noter que l'expression suivante ne pas réécrit correctement IS DISTINCT FROM :
FALSE OR NULL
Dans SQL Server, FALSE OR NULL est évalué à Inconnu, ce qui n'est pas le résultat souhaité. Par conséquent, il est crucial d'utiliser les expressions fournies ci-dessus pour une réécriture précise.
Conclusion
En utilisant ces expressions réécrites, les utilisateurs de SQL Server 2008R2 peuvent obtenir les mêmes fonctionnalités que EST DISTINCT DE et N'EST PAS DISTINCT DE, garantissant que les comparaisons renvoient toujours des résultats définitifs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!