Emulieren unterscheidet sich von SQL Server 2008 R2 und ist nicht davon zu unterscheiden
SQL Server 2008 R2 bietet keine direkte Unterstützung für IS DISTINCT FROM
und IS NOT DISTINCT FROM
. Allerdings können wir die gleiche Funktionalität mit alternativen SQL-Ausdrücken erreichen.
IS DISTINCT FROM
gibt TRUE zurück, wenn die Operanden ungleich sind oder wenn einer der Operanden NULL ist. IS NOT DISTINCT FROM
gibt TRUE zurück, wenn die Operanden gleich sind oder wenn beide Operanden NULL sind.
So replizieren Sie diese Operatoren:
IS DISTINCT FROM
:<code class="language-sql">(a <> b OR a IS NULL OR b IS NULL) AND NOT (a IS NULL AND b IS NULL)</code>
IS NOT DISTINCT FROM
:<code class="language-sql">(a = b OR a IS NULL AND b IS NULL)</code>
Diese Ausdrücke berücksichtigen NULL-Werte. Die IS DISTINCT FROM
-Emulation stellt sicher, dass das Ergebnis TRUE ist, wenn ein Operand NULL ist, es sei denn, beide sind NULL. Die IS NOT DISTINCT FROM
-Emulation vereinfacht eine direkte Gleichheitsprüfung oder eine Prüfung auf doppelte NULL-Werte. Dieser Ansatz vermeidet die Komplexität des Umgangs mit dem UNKNOWN
-Ergebnis, die sich aus der booleschen Logik mit NULL-Werten ergeben kann.
Das obige ist der detaillierte Inhalt vonWie simuliere ich „IS DISTINCT FROM' und „IS NOT DISTINCT FROM' in SQL Server 2008 R2?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!