Ansicht
Dokumentation

ABAPDELETE_DUPLICATES - DELETE DUPLICATES

ABAPDELETE_DUPLICATES - DELETE DUPLICATES

Addresses (Business Address Services)   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

DELETE itab, duplicates

Kurzreferenz



... ADJACENT DUPLICATES FROM itab $[USING KEY keyname$]
             $[COMPARING ${ comp1 comp2 ...$}$|${ALL FIELDS$}$] ...

Zusätze:

1. ... USING KEY keyname

2. ... COMPARING ${comp1 comp2 ...$}$|${ALL FIELDS$}

Wirkung

Mit diesen Zusätzen löscht die Anweisung DELETE in Gruppen aufeinander folgender Zeilen, die in bestimmten Komponenten den gleichen Inhalt haben, alle Zeilen bis auf die erste Zeile der Gruppe. Wenn der Zusatz COMPARING nicht angegeben ist, werden die Gruppen durch den Inhalt der Schlüsselfelder des verwendeten Tabellenschlüssels bestimmt. Wenn kein expliziter Tabellenschlüssel angegeben ist, wird implizit der primäre Tabellenschlüssel verwendet.

Die Reihenfolge der Tabellenzeilen, über denen die Gruppen gebildet werden, wird durch den verwendeten Tabellenschlüssel bestimmt. Wenn hinter USING KEY kein Schlüssel keyname angegeben ist, ist die Reihenfolge wie bei der Verarbeitung einer LOOP-Anweisung ohne explizite Schlüsselangabe.

Zeilen werden als doppelt vorhanden betrachtet, wenn der Inhalt benachbarter Zeilen in den untersuchten Komponenten übereinstimmt. Von mehreren aufeinander folgenden doppelten Zeilen werden alle bis auf die erste Zeile gelöscht.

Wenn auf eine Standardtabelle über den primären Tabellenschlüssel zugegriffen wird und dieser leer ist, werden keine Zeilen gelöscht. Falls dies statisch erkennbar ist, kommt es zu einer Warnung von der Syntaxprüfung.

Hinweise

  • Die Verwendung von ADJACENT DUPLICATES setzt in aller Regel eine geeignete Sortierung nach den Komponenten voraus, die in der Anweisung verglichen werden.
  • Bei Verwendung des primären Tabellenschlüssels ist zu beachten, dass dies auch der Standardschlüssel sein kann, wodurch unerwartete Effekte auftreten können:
  • Bei strukturiertem Zeilentyp umfasst der Standardschlüssel alle zeichen- und byteartigen Komponenten.

  • Der Standardschlüssel einer Standardtabelle kann leer sein.

Beispiel

Löschen aller bezüglich des Primärschlüssels mehrfach auftretenden Zeilen in der internen Tabelle city_connections.

Zusatz 1

... USING KEY keyname

Wirkung

Mit dem Zusatz USING KEY kann in keyname ein Tabellenschlüssel angegeben werden, mit dem die Verarbeitung ausgeführt wird. Der angegebene Tabellenschlüssel beeinflusst die Reihenfolge, in der auf die Tabellenzeilen zugegriffen wird, und die Auswertung der übrigen Bedingungen.

Falls der primäre Tabellenschlüssel angegeben ist, verhält sich die Verarbeitung wie bei keiner expliziten Schlüsselangabe. Falls ein sekundärer Tabellenschlüssel angegeben ist, ist die Reihenfolge, in der auf die Zeilen zugegriffen wird, wie folgt:

Hinweis

Im Unterschied zur Verarbeitung einer Hash-Tabelle unter Verwendung des Primärschlüssels, hat eine vorhergehende Sortierung mit der Anweisung SORT keinen Einfluss auf die Verarbeitungsreihenfolge wenn ein sekundärer Hash-Schlüssel angegeben ist.

Hinweis

Im Unterschied zur Verarbeitung einer Hash-Tabelle unter Verwendung des Primärschlüssels, hat eine vorhergehende Sortierung mit der Anweisung SORT keinen Einfluss auf die Verarbeitungsreihenfolge wenn ein sekundärer Hash-Schlüssel angegeben ist.

Beispiel

Die Anweisung DELETE löscht alle mehrfach vorkommenden Zahlen aus der internen Tabelle itab. Die Tabelle enthält danach maximal zehn Zeilen.

Zusatz 2

... COMPARING ${comp1 comp2 ...$}$|${ALL FIELDS$}

Wirkung

Falls der Zusatz COMPARING angegeben ist, werden die Gruppen entweder durch den Inhalt der angegebenen Komponenten comp1 comp2 ... oder den Inhalt aller Komponenten ALL FIELDS bestimmt. Die Angabe einzelner Komponenten comp erfolgt wie im Abschnitt Angabe von Komponenten beschrieben, wobei insbesondere ein Zugriff auf Attribute von Klassen über den Objektkomponenten-Selektor möglich ist.

Beispiel

Lesen bestimmter Daten aus zwei Tabellen des ITF-Frameworks, wobei DOKIL die Indextabelle zu DOKHL ist. Deshalb wird erwartet, dass beide Tabellen gleich viele Zeilen enthalten, nachdem mehrfach vorkommende Zeilen gelöscht wurden. Die inline deklarierte Tabelle >dokhl_tab hat einen leeren Primärschlüssel, weswegen die Komponente object explizit mit COMPARING angegeben wird.






SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 7863 Date: 20240418 Time: 105500     sap01-206 ( 108 ms )