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 / 52 / 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

Vergleichbare Themen

30
Antw.
14144
Views
move itab 1 nach itab 2 mit bedingung
von c oco » 17.04.2012 14:39 • Verfasst in ABAP® für Anfänger
4
Antw.
2853
Views
DELETE ADJACENT DUPLICATES mit Bedingung?
von ChristianHo » 08.03.2016 13:59 • Verfasst in ABAP® für Anfänger
1
Antw.
423
Views
Delete in Loop abglecih 2 ITAb
von autohandel7 » 17.12.2021 10:35 • Verfasst in ABAP® für Anfänger
3
Antw.
9383
Views
Select mit itab in where-Bedingung
von fcmfanswr » 14.07.2011 10:29 • Verfasst in ABAP® Core
9
Antw.
11620
Views
DELETE FROM ... NOT IN...
von ChristianHo » 09.02.2016 10:00 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Regex in where
vor 6 Stunden von edwin 7 / 163
Daten an Tabelle binden
vor 19 Stunden von Bright4.5 3 / 1487

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.

Aktuelle Forenbeiträge

Regex in where
vor 6 Stunden von edwin 7 / 163
Daten an Tabelle binden
vor 19 Stunden von Bright4.5 3 / 1487

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9822