delete from itab mit where Bedingung

Getting started ... Alles für einen gelungenen Start.
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

delete from itab mit where Bedingung

Beitrag von debianfan (ForumUser / 84 / 64 / 0 ) »
Hallo,

ich habe eine interne Tabelle:

ID CHAR10
Datum DATS
usw...

Die ID hat Einträge wie

L0000000
L0000001
L0000002
LZS00001
T5555555
R5556666
XC333333

Ich möchte jetzt alle Datensätze mit der ID ungleich L0...... und LZS...... entfernen.

Delete itab where id NOT 'L0%' OR id not 'LZS%'.

funktioniert nicht.

Wie bewerkstellige ich das am schnellsten & einfachsten ?

gruß & danke
Ich weiß viel - aber nicht alles - deswegen lerne ich gern dazu & bin für Hinweise von erfahrenen ITlern immer dankbar.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: delete from itab mit where Bedingung

Beitrag von SaskuAc (Specialist / 321 / 37 / 44 ) »
Ohne es jetzt nachgeprüft zu haben:

Code: Alles auswählen.

Delete itab where id not like 'L0%'. 

bei deiner Prüfung prüft er direkt auf das % in der ID - bei like wird dann das % ersetzt..


https://www.w3schools.com/SQL/sql_like.asp

Folgende Benutzer bedankten sich beim Autor SaskuAc für den Beitrag:
debianfan


Re: delete from itab mit where Bedingung

Beitrag von debianfan (ForumUser / 84 / 64 / 0 ) »
Ich hab es jetzt so gelöst:

SORT itab BY ID.

LOOP AT itab INTO itab_s.
IF NOT ( itab_s-ID(2) CP 'L0' OR
itab_s-ID(4) CP 'LSZE' ).
DELETE itab INDEX sy-tabix.
ENDIF.

ENDLOOP.
Ich weiß viel - aber nicht alles - deswegen lerne ich gern dazu & bin für Hinweise von erfahrenen ITlern immer dankbar.

Re: delete from itab mit where Bedingung

Beitrag von zzcpak (Expert / 673 / 5 / 68 ) »
oder so

Code: Alles auswählen.

delete itab where id np 'L0*' and id np 'LZS*'.

Re: delete from itab mit where Bedingung

Beitrag von schick (ForumUser / 53 / 5 / 15 ) »

Code: Alles auswählen.

REPORT zdeleteitab.

DATA:
  BEGIN OF line,
    id(8) TYPE c,
  END OF line,
  tab LIKE TABLE OF line.

tab = VALUE #( ( id = 'L0000000' )
               ( id = 'L0000001' )
               ( id = 'L0000002' )
               ( id = 'LZS00001' )
               ( id = 'T5555555' )
               ( id = 'R5556666' )
               ( id = 'XC333333' ) ).

DELETE tab WHERE id NP 'L0*' AND id NP 'LZS*'.
Edit:
Zu langsam...

PS:

Code: Alles auswählen.

DELETE tab WHERE id NS 'L0' AND id NS 'LZS'.
ginge auch ;-)

Folgende Benutzer bedankten sich beim Autor schick für den Beitrag:
debianfan


Seite 1 von 1

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Feldroutine ADSO Transformation
vor einer Woche von codemaster1 2 / 73663
Stücklisten
vor einer Woche von Selma.schwarz 1 / 75126
Belege
vor einer Woche von Selma.schwarz 1 / 73087

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Vergleichbare Themen

move itab 1 nach itab 2 mit bedingung
von c oco » 17.04.2012 14:39
DELETE ADJACENT DUPLICATES mit Bedingung?
von ChristianHo » 08.03.2016 13:59
Delete in Loop abglecih 2 ITAb
von autohandel7 » 17.12.2021 10:35
Select mit itab in where-Bedingung
von fcmfanswr » 14.07.2011 10:29
DELETE FROM ... NOT IN...
von ChristianHo » 09.02.2016 10:00

Aktuelle Forenbeiträge

Feldroutine ADSO Transformation
vor einer Woche von codemaster1 2 / 73663
Stücklisten
vor einer Woche von Selma.schwarz 1 / 75126
Belege
vor einer Woche von Selma.schwarz 1 / 73087

Unbeantwortete Forenbeiträge

Stücklisten
vor einer Woche von Selma.schwarz 1 / 75126
Belege
vor einer Woche von Selma.schwarz 1 / 73087