Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Anweisungen » SQL-Anweisungen (E-O)

 

EXCEPT-Klausel

Gibt Zeilen zurück, die in der Ergebnismenge für den Abfrageblock vor EXCEPT vorhanden und in der Ergebnismenge für den Abfrageblock nach EXCEPT nicht vorhanden sind.

Syntax
[ WITH Temporäre_Ansichten ] Haupt-Abfrageblock
  EXCEPT [ ALL | DISTINCT ] Except-Abfrageblock
[ ORDER BY  [Ganzzahl | Auswahllistenausdruck-Name ] [ ASC | DESC ], ... ]
[ FOR XML XML-Modus ]
[ OPTION( Abfragen-Hint, ... ) ]
Abfragen-Hint :
MATERIALIZED VIEW OPTIMIZATION Optionswert
| FORCE OPTIMIZATION
| Optionsname = Optionswert

Haupt-Abfrageblock: Ein Abfrageblock. Weitere Hinweise finden Sie unter Allgemeine Elemente der SQL-Syntax.

Except-Abfrageblock: Ein Abfrageblock. Weitere Hinweise finden Sie unter Allgemeine Elemente der SQL-Syntax.

Optionsname : Bezeichner
Optionswert : Hostvariable (Bezeichner zulässig), Zeichenfolge, Bezeichner oder Zahl
Parameter
  • Haupt-Abfrageblock   Ein Abfrageblock, mit dem mindestens ein Abfrageblock verglichen wird.

  • Except-Abfrageblock   Ein Abfrageblock rechts von der EXCEPT-Klausel. Das Ergebnis eines Except-Abfrageblocks wird mit dem Ergebnis des Haupt-Abfrageblocks verglichen, um Zeilen zu ermitteln, die nur im Haupt-Abfrageblock vorhanden sind.

  • EXCEPT-Klausel   Wenn im Haupt-Abfrageblock Duplikatzeilen vorhanden sind, die nicht zu Zeilen in dem oder den Except-Abfrageblock/Abfrageblöcken passen, erscheinen die Duplikare im Ergebnis, wenn EXCEPT ALL angegeben ist. Um Duplikate im Ergebnis zu löschen, geben Sie anstelle dessen EXCEPT oder EXCEPT DISTINCT an.

  • OPTION-Klausel   Verwenden Sie diese Klausel, um Hints für das Ausführen der Anweisung anzugeben. Die folgenden Hints werden unterstützt:

    • MATERIALIZED VIEW OPTIMIZATION Optionswert
    • FORCE OPTIMIZATION
    • Optionsname = Optionswert

    Eine Beschreibung dieser Optionen finden Sie bei der OPTIONS-Klausel unter SELECT-Anweisung.

Bemerkungen

Verwenden Sie die EXCEPT-Klausel, um die Ergebnisse des Haupt-Abfrageblocks mit einem oder mehreren Except-Abfrageblöcken zu vergleichen und nur jene Zeilen zurückzugeben, die im Haupt-Abfrageblock vorhanden sind. Geben Sie EXCEPT oder EXCEPT DISTINCT an, wenn Duplikate im Haupt-Abfrageblock nicht als Duplikate in den Ergebnissen erscheinen sollen. Sonst geben Sie EXCEPT ALL an.

EXCEPT ist identisch mit EXCEPT DISTINCT.

Die Abfrageblöcke müssen jeweils die gleiche Anzahl von Einträgen in der Auswahlliste haben.

Die Anzahl von Zeilen in der Ergebnismenge von EXCEPT ALL entspricht genau dem Unterschied zwischen der Anzahl der Zeilen in den Ergebnismengen der getrennten Abfragen.

Die Ergebnisse von EXCEPT stimmen mit denen von EXCEPT ALL überein, außer dass bei EXCEPT Duplikatzeilen eliminiert werden, bevor der Unterschied zwischen den Ergebnismengen berechnet wird.

Wenn übereinstimmende Elemente in zwei Auswahllisten verschiedene Datentypen umfassen, wählt SQL Anywhere einen Datentyp für die entsprechende Spalte im Ergebnis aus und konvertiert automatisch die Spalten in jedem Abfrageblock. Die erste Abfragenspezifikation von UNION wird verwendet, um die Namen festzulegen, die mit der ORDER BY-Klausel zugeordnet werden sollen.

Die angezeigten Spaltennamen sind dieselben, die auch für den ersten Abfrageblock angezeigt werden. Eine andere Art der Anpassung von Spaltennamen in der Ergebnismenge ist mit der WITH-Klausel für den Abfrageblock möglich.

Berechtigungen

Erfordert SELECT-Berechtigung für jeden Abfrageblock.

Nebenwirkungen

Keine

Siehe auch
Standards und Kompatibilität
  • SQL/2003   EXCEPT DISTINCT ist eine Kernfunktion. EXCEPT ALL ist Merkmal F304.

Beispiel

Ein Beispiel für die Verwendung von EXCEPT finden Sie unter Mengenoperatoren und NULL.