Umschreiben des IS DISTINCT FROM-Operators in SQL Server 2008R2
SQL Server 2008R2 unterstützt die Standardoperatoren IS DISTINCT FROM und IS NOT DISTINCT FROM nicht. Dieser Artikel bietet eine Lösung zum Umschreiben dieser Ausdrücke mithilfe einer alternativen Syntax, die mit dieser Version der Software kompatibel ist.
IST UNTERSCHIEDLICH VON
Das IS DISTINCT FROM-Prädikat wird als „True“ ausgewertet, wenn die beiden Werte nicht gleich sind oder einer der Werte NULL ist; es wird als „False“ ausgewertet, wenn sie gleich sind und keiner der Werte NULL ist. Es kann wie folgt umgeschrieben werden:
((a != b OR a IS NULL OR b IS NULL) AND NOT (a IS NULL AND b IS NULL))
Beispiel:
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
IST NICHT UNTERSCHEIDBAR VON
Der OperatorIS NOT DISTINCT FROM ergibt „True“, wenn die beiden Werte gleich oder beide NULL sind, und ergibt „False“, wenn sie nicht gleich und nicht beide NULL sind. Es kann wie folgt umgeschrieben werden:
(NOT (a != b OR a IS NULL OR b IS NULL) OR (a IS NULL AND b IS NULL))
Beispiel:
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
Hinweis:
Die bereitgestellte Überschreibung stellt sicher, dass das Ergebnis immer „Wahr“ oder „Falsch“ ist, und vermeidet den unbekannten Zustand, der bei NULL-Operanden auftreten kann.
Das obige ist der detaillierte Inhalt vonWie kann ich die Operatoren „IS DISTINCT FROM' und „IS NOT DISTINCT FROM' in SQL Server 2008R2 umschreiben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!