Maison >base de données >tutoriel mysql >Comment puis-je réécrire les opérateurs IS DISTINCT FROM et IS NOT DISTINCT FROM dans SQL Server 2008R2 ?

Comment puis-je réécrire les opérateurs IS DISTINCT FROM et IS NOT DISTINCT FROM dans SQL Server 2008R2 ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-11 10:54:43810parcourir

How Can I Rewrite IS DISTINCT FROM and IS NOT DISTINCT FROM Operators in SQL Server 2008R2?

Réécriture de l'opérateur IS DISTINCT FROM dans SQL Server 2008R2

SQL Server 2008R2 ne prend pas en charge les opérateurs standards IS DISTINCT FROM et IS NOT DISTINCT FROM. Cet article propose une solution pour réécrire ces expressions en utilisant une syntaxe alternative compatible avec cette version du logiciel.

EST DISTINCT DE

Le prédicat IS DISTINCT FROM est évalué à True si les deux valeurs ne sont pas égales ou si l'une des valeurs est NULL ; il est évalué à False si elles sont égales et aucune des deux n'est NULL ; Il peut être réécrit ainsi :

<code class="language-sql">((a != b OR a IS NULL OR b IS NULL) AND NOT (a IS NULL AND b IS NULL))</code>

Exemple :

<code class="language-sql">SELECT CASE
    WHEN (a != b OR a IS NULL OR b IS NULL) AND NOT (a IS NULL AND b IS NULL) THEN 'True'
    ELSE 'False'
END AS DistinctResult</code>

N'EST PAS DISTINCT DE

L'opérateur

IS NOT DISTINCT FROM est évalué à True si les deux valeurs sont égales ou les deux sont NULL, et est évalué à False si elles ne sont pas égales et pas toutes les deux NULL. 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>

Exemple :

<code class="language-sql">SELECT CASE
    WHEN (NOT (a != b OR a IS NULL OR b IS NULL) OR (a IS NULL AND b IS NULL)) THEN 'True'
    ELSE 'False'
END AS NotDistinctResult</code>

Remarque :

Le remplacement fourni garantit que le résultat est toujours vrai ou faux, évitant ainsi l'état inconnu qui peut se produire avec les opérandes NULL.

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