Vergleichselement DISTINCT

Das Vergleichselement DISTINCT vergleicht zwei Ausdrücke und ergibt TRUE, wenn ihre Werte nicht identisch sind.

Das Ergebnis eines Vergleichselements DISTINCT hängt davon ab, ob einer oder beide Eingabeausdrücke null sind:
Eingabeausdrücke UNTERSCHEIDET SICH VON Unterscheidet sich nicht von
Beide Eingaben sind ungleich null. Wird als TRUE ausgewertet, wenn die Eingaben nicht identisch sind, und FALSE, wenn sie identisch sind. Äquivalent zum Operator <> . Wird als FALSE ausgewertet, wenn die Eingaben nicht identisch sind, und als TRUE, wenn sie identisch sind. Äquivalent zum Operator = .
Eine Eingabe ist null. Wird mit TRUE ausgewertet. Wird als FALSE ausgewertet.
Beide Eingaben sind null. Wird als FALSE ausgewertet. Wird mit TRUE ausgewertet.
Das Ergebnis eines Vergleichselements DISTINCT darf nicht null sein.
Read syntax diagramSkip visual syntax diagram expression1 IS NOT DISTINCT FROM expression2
expression1 und expression2
Die Ausdrücke, die verglichen werden sollen.

Beispiele

Angenommen, HV ist eine Hostvariable und T1 ist eine Tabelle mit einer Spalte (C1) und drei Zeilen:
C1
----
1
2
NULL
  • Bei HV=2wird die Anweisung
    SELECT * FROM T1 WHERE C1 IS DISTINCT FROM :HV;
    Gibt die Zeilen 1 und 3 zurück.
    Bei HV=2wird die Anweisung
    SELECT * FROM T1 WHERE C1 IS NOT DISTINCT FROM :HV;
    gibt Zeile 2 zurück.
  • Wenn HV=NULL, die Anweisung
    SELECT * FROM T1 WHERE C1 IS DISTINCT FROM :HV;
    Gibt die Zeilen 1 und 2 zurück.
    Wenn HV=NULL, die Anweisung
    SELECT * FROM T1 WHERE C1 IS NOT DISTINCT FROM :HV;
    Gibt Zeile 3 zurück