Maison >base de données >tutoriel mysql >Comment réécrire IS DISTINCT FROM et IS NOT DISTINCT FROM dans SQL Server 2008R2 ?

Comment réécrire IS DISTINCT FROM et IS NOT DISTINCT FROM dans SQL Server 2008R2 ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-11 07:48:44748parcourir

How to Rewrite IS DISTINCT FROM and IS NOT DISTINCT FROM in SQL Server 2008R2?

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édicat

IS 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn