SAP HANA Union & Union All: OperaTor-Beispiele
⚡ Intelligente Zusammenfassung
SAP HANA OperaDer Operator „tor“ führt Berechnungen, Wertvergleiche oder Zuweisungen innerhalb von SQL durch. Es gibt sechs Familien von Operatoren: unäre und binäre, arithmetische, Zeichenketten-, Vergleichs-, logische und Mengenoperatoren wie UNION und INTERSECT.

SAP HANA Operator kann zur Berechnung, zum Wertevergleich oder zur Wertzuweisung verwendet werden.
SAP HANA Operatoren
- Unär und Binär OperaDo.
- Arithmetik OperaDo.
- Schnur Operatoren
- Vergleich OperaDo.
- logisch OperaDo.
- Stelle den OperaDo.
Jeder Operator gibt einen Wert zurück, weshalb sie ineinander verschachtelt werden können. Die Auswertungsreihenfolge wird durch die Operatorpriorität festgelegt, die nach den einzelnen Operatorfamilien erläutert wird.
Unär und Binär OperaDo.
| OperaDo. | Produktion | Beschreibung |
|---|---|---|
| Einstellig | Ein unärer Operator gilt für einen Operanden | Unärer Plusoperator (+) Unärer Negationsoperator (-) Logische Negation (NICHT) |
| Binär | Eine Binärdatei Operator gilt für zwei Operanden | Multiplikative Operatoren ( *, / ) Additive Operatoren (+, - ) Vergleichsoperatoren ( =, !=, <, >, <=, >=) Logische Operatoren ( UND, ODER ) |
Arithmetik OperaDo.
- Zusatz (+)
- Subtraction (-)
- Multiplikation (*)
- Aufteilung ( / )
Schnur OperaDo.
Ein Faden Operator ist ein Verkettungsoperator, der zwei Elemente wie Zeichenfolgen, Ausdrücke oder Konstanten zu einem kombiniert.
Als Verkettungsoperator werden zwei vertikale Striche „||“ verwendet.
Vergleich OperaDo.
Der Vergleichsoperator wird verwendet, um zwei Operanden zu vergleichen. Nachfolgend finden Sie eine Liste der Vergleichsoperatoren. Operaquälen
- Gleich ( = )
- Größer als ( > )
- Less Als ( < )
- Größer oder gleich ( >= )
- Less größer oder gleich ( <= )
- Nicht gleich (!= , <> )
logisch OperaDo.
In den Suchkriterien wird ein logischer Operator verwendet.
ZB WHERE Bedingung1 UND / ODER / NICHT Bedingung2
Unten finden Sie eine Liste logischer Operatoren –
- UND – (z. B. WHERE Bedingung1 UND Bedingung2)
Wenn sowohl Bedingung1 als auch Bedingung2 wahr sind, ist die Kombinationsbedingung wahr, andernfalls ist sie falsch. - ODER – (z. B. WHERE Bedingung 1 ODER Bedingung 2)
Wenn Bedingung1 ODER Bedingung2 wahr ist, ist die Kombinationsbedingung wahr oder falsch, wenn beide Bedingungen falsch sind. - NICHT – (z. B. WHERE NOT Bedingung)
NICHT-Bedingung ist wahr, wenn Bedingung falsch ist.
Stelle den Operatoren
- UNION – Kombiniert zwei oder mehrere SELECT-Anweisungen oder Abfragen ohne Duplikate.
- UNION ALL – Kombiniert zwei oder mehrere SELECT-Anweisungen oder Abfragen, einschließlich aller doppelten Zeilen.
- INTERSECT – Kombiniert zwei oder mehrere SELECT-Anweisungen oder Abfragen und gibt alle gemeinsamen Zeilen zurück.
- AUSNAHME – Nimmt die Ausgabe der ersten Abfrage und entfernt die von der zweiten Abfrage ausgewählte Zeile.
zB Ich habe zwei Tabellen (Tabelle1, Tabelle2), in denen einige Werte gemeinsam sind.
Wir verwenden den Set-Operator (Union, Union ALL, Intersect, except) für diese beiden Tabellen in SQL wie nachstehend -
Erstellen Sie ein Tabelle1-SQL-Skript
CREATE COLUMN TABLE DHK_SCHEMA.TABLE1 ( ELEMENT CHAR(1), PRIMARY KEY (ELEMENT) ); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('P'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('Q'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('R'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('S'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('T');
Erstellen Sie ein Tabelle2-SQL-Skript
CREATE COLUMN TABLE DHK_SCHEMA.TABLE2 ( ELEMENT CHAR(1), PRIMARY KEY (ELEMENT) ); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('S'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('T'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('U'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('V'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('W');
Hinweis: Hier ist „DHK_SCHEMA“ ein Schemaname, in dem der Benutzer den Schemanamen ändern kann SQL entsprechend.
Stelle den Operator Beispiele sind wie folgt
| OperaDo. | SQL-Abfrage | Ausgang | Verwendung |
|---|---|---|---|
| UNION | SELECT * AB ( SELECT ELEMENT AB DHK_SCHEMA.TABLE1 UNION SELECT ELEMENT AB DHK_SCHEMA.TABLE2 ) SORTIEREN NACH ELEMENT; |
Kombinieren Sie das Ergebnis von zwei oder mehr Abfragen ohne Duplikat. | |
| UNION ALL | SELECT * AB ( SELECT ELEMENT AB DHK_SCHEMA.TABLE1 UNION ALL SELECT ELEMENT AB DHK_SCHEMA.TABLE2 ) SORTIEREN NACH ELEMENT; |
Kombinieren Sie das Ergebnis von zwei oder mehr Abfragen mit allen Duplikaten. | |
| INTERSECT | SELECT * AB ( SELECT ELEMENT AB DHK_SCHEMA.TABLE1 INTERSECT SELECT ELEMENT AB DHK_SCHEMA.TABLE2 ) SORTIEREN NACH ELEMENT; |
Kombinieren Sie das Ergebnis von zwei oder mehr Abfragen mit allen gemeinsamen Zeilen. | |
| AUSSER | SELECT * AB ( SELECT ELEMENT AB DHK_SCHEMA.TABLE1 AUSSER SELECT ELEMENT AB DHK_SCHEMA.TABLE2 ) SORTIEREN NACH ELEMENT; |
Übernimmt die Ausgabe der ersten Abfrage und entfernt die von der zweiten Abfrage ausgewählte Zeile |
Stelle den OperaTor-Regeln und -Anforderungen
Mengenoperatoren sehen zwar einfach aus, lehnen Anfragen aber häufig ab, da sie ganze Ergebnismengen anstatt einzelner Werte vergleichen. Vier Regeln regeln ihre Anwendung.
- Die Anzahl der Spalten muss übereinstimmen. Beide SELECT-Anweisungen müssen die gleiche Anzahl an Spalten zurückgeben. Bei einer Abweichung schlägt die Anweisung sofort fehl, und die Fehlermeldung gibt die Position anstelle der Spalte an.
- Die Datentypen müssen kompatibel sein. Die erste Spalte der ersten Abfrage wird positionsbasiert, nicht namentlich, mit der ersten Spalte der zweiten Abfrage verglichen usw. Kompatible numerische Datentypen werden automatisch konvertiert; eine Zeichenkette wird jedoch nicht mit einem Datumswert verglichen.
- Die Spaltennamen stammen aus der ersten Abfrage. Die Spalten, die in der zweiten Anweisung aufgerufen werden, werden in der Ausgabe ignoriert, was jeden überrascht, der zum ersten Mal das Ergebnis einer UNION-Operation liest.
- ORDER BY gilt für das gesamte Ergebnis. Es gehört ans Ende, nach dem letzten SELECT, und deshalb umschließen die obigen Beispiele die Union mit einem äußeren SELECT.
Der Leistungsunterschied zwischen UNION und UNION ALL ist bemerkenswert. UNION muss das kombinierte Ergebnis sortieren oder hashen, um Duplikate zu entfernen, während UNION ALL die Ergebnisse einfach anhängt. Wo Duplikate unmöglich oder akzeptabel sind, ist UNION ALL bei großen Tabellen deutlich schneller. Die in diesen Tabellen verwendeten Spaltendefinitionen werden in [Referenz einfügen] erläutert. SAP HANA-Datentypen.
OperaVorrang in SAP HANA SQL
Wenn mehrere Operatoren in einem Ausdruck vorkommen, bestimmt die Operatorpriorität, welcher Operator zuerst ausgewertet wird. Ein Fehler in diesem Punkt führt zu einer Abfrage, die zwar fehlerfrei ausgeführt wird, aber die falschen Zeilen zurückgibt, was weitaus gefährlicher ist als ein Syntaxfehler.
| Order | Operatoren | Kategorie |
|---|---|---|
| 1 | () | Klammern werden immer zuerst ausgewertet |
| 2 | + – (einzelner Operand) | Unäres Plus und Negation |
| 3 | * / | Multiplikation und Division |
| 4 | + – || | Ergänzung, Untertraction, Verkettung |
| 5 | = != < > <= >= | Vergleich |
| 6 | NICHT | Logische Negation |
| 7 | UND | Logische Konjunktion |
| 8 | OR | Logische Disjunktion |
Die klassische Falle befindet sich in den Zeilen 7 und 8. Da UND stärker bindet als ODER, gilt die Bedingung WHERE region = 'EAST' OR region = 'WEST' AND status = 'OPEN' wird gelesen als OSTEN, oder auch WESTEN, das ist offenUnabhängig vom Status wird jede östliche Zeile zurückgegeben. Das Hinzufügen von Klammern um die beiden Regionstests behebt das Problem.
💡 Tipp: Setzen Sie jede gemischte UND-ODER-Bedingung in Klammern, auch wenn die Reihenfolge bereits das gewünschte Ergebnis liefert. Dadurch wird die Abfrage selbsterklärend und bleibt auch nach Änderungen durch andere Entwickler erhalten.
Die Syntax für alltägliche Anweisungen wird im Folgenden behandelt. SAP HANA SQL Tutorial und die breitere Plattform in der SAP HANA-Tutorial .





