La réécriture EST DISTINCT DE et N'EST PAS DISTINCT DE dans SQL Server 2008R2
Question :
Comment réécrire une expression qui contient les opérateurs IS DISTINCT FROM et IS NOT DISTINCT FROM dans Microsoft SQL Server 2008R2 (qui ne prend pas en charge les opérateurs IS DISTINCT FROM et IS NOT DISTINCT FROM) ?
Réponse :
EST DISTINCT DE
Le prédicatIS DISTINCT FROM garantit un résultat binaire (vrai ou faux) lors de la comparaison de deux valeurs. Pour SQL Server 2008R2, ce prédicat peut être simulé à l'aide de l'expression suivante :
<code class="language-sql">((a != b OR a IS NULL OR b IS NULL) AND NOT (a IS NULL AND b IS NULL))</code>
N'EST PAS DISTINCT DE
De même, IS NOT DISTINCT FROM vérifie s'il existe une différence significative entre deux valeurs. Il peut être réécrit comme :
<code class="language-sql">(NOT (a != b OR a IS NULL OR b IS NULL) OR (a IS NULL AND b IS NULL))</code>
Comparaison avec une mauvaise réponse
La réponse incorrecte donnée ne prend pas en compte l'évaluation des valeurs NULL dans les expressions booléennes. Par exemple, NULL IS DISTINCT FROM NULL devrait être évalué comme False, mais l'expression incorrecte renvoie Inconnu.
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!