SELECT CHAR16 in CHAR12-Feld Thema ist als GELÖST markiert

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

SELECT CHAR16 in CHAR12-Feld

Beitrag von Patrick1982 (ForumUser / 33 / 4 / 0 ) »
Moin,

kurze Frage:
Ich selektiere aus einer Tabelle ein Feld mit Typ CHAR16, mein Ziel-Feld hat aber CHAR12.
In der DB-Tabelle sind die Einträge trotz CHAR16 nur 12-stellig (mit 4 führenden Nullen). In meinem Ziel möchte ich daher nur die letzten/rechten 12 Stellen des CHAR16-Felds haben.

Hat jemand eine Idee, wie ich direkt die letzten 12 Stellen übernommen bekomme?
Klar kann ich nachher drüber loopen und das konvertieren, aber es handelt sich um mehrere Mio. Einträge, daher würd ich mir den Loop gern sparen :-)

Vielen Dank!

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


Re: SELECT CHAR16 in CHAR12-Feld

Beitrag von a-dead-trousers (Top Expert / 4486 / 231 / 1206 ) »
FELD+4 sollte funktionieren.

EDIT:
Sollte das in OpenSQL bei dir (noch) nicht funktionieren, in CDS-Views funktioniert es auf alle Fälle.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: SELECT CHAR16 in CHAR12-Feld

Beitrag von Shortcut IT (ForumUser / 52 / 2 / 18 ) »
Hallo,

bei einem halbwegs aktuellen Releasestand kannst du die SUBSTRING-Funktion in einem SELECT nutzen.

select feld1 as feld1, feld2 as feld2,...,
substring( CHAR16-Feld, 5, 12 ) as char12

Viele Grüße
Shortcut IT

Folgende Benutzer bedankten sich beim Autor Shortcut IT für den Beitrag (Insgesamt 2):
a-dead-trousersDeathAndPain


Re: SELECT CHAR16 in CHAR12-Feld

Beitrag von rob_abc (Specialist / 166 / 44 / 62 ) »
LTRIM gibt es auch in SAP.

Code: Alles auswählen.

TYPES:
  BEGIN OF ty_matnr,
    matnr TYPE matnr,
  END OF ty_matnr.

DATA:
  mat_table TYPE SORTED TABLE OF ty_matnr WITH UNIQUE KEY matnr.

mat_table = VALUE #(
  ( matnr = '000000000000100000' )
  ( matnr = '100000-001-A' ) ).

DATA(l_rng) = VALUE rsdsselopt_t( ( sign = 'I' option = 'CP' low = '1*' ) ).

SELECT ltrim( matnr, '0' ) FROM @mat_table AS itab
   WHERE ltrim( matnr, '0' ) IN @l_rng
   INTO TABLE @DATA(found_materials).

cl_demo_output=>display( found_materials ).

Re: SELECT CHAR16 in CHAR12-Feld

Beitrag von Patrick1982 (ForumUser / 33 / 4 / 0 ) »
Shortcut IT hat geschrieben:
17.04.2024 23:22
Hallo,

bei einem halbwegs aktuellen Releasestand kannst du die SUBSTRING-Funktion in einem SELECT nutzen.

select feld1 as feld1, feld2 as feld2,...,
substring( CHAR16-Feld, 5, 12 ) as char12

Viele Grüße
Shortcut IT
Ahh perfekt, danke! Das hat hier noch keiner mitbekommen, dass das jetzt auch in ABAP SQL funktioniert :-)

Seite 1 von 1

Aktuelle Forenbeiträge

Feldroutine ADSO Transformation
vor einer Woche von codemaster1 2 / 91157
Stücklisten
vor 3 Wochen von Selma.schwarz 1 / 93045

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

Dynamisch SELECT Feld
von Bajdu » 22.09.2006 14:17
Select , where Feld is Initial
von autohandel7 » 06.06.2019 10:36
0 in ein Feld bei Select Option reinschreiben
von L0w-RiDer » 30.07.2019 11:18
SELECT AUF ZEICHEN IN EINEM FELD
von Adrian » 08.02.2013 11:26
Select-Option Feld verlängern/verbreitern
von Bright4.5 » 29.01.2019 08:27

Aktuelle Forenbeiträge

Feldroutine ADSO Transformation
vor einer Woche von codemaster1 2 / 91157
Stücklisten
vor 3 Wochen von Selma.schwarz 1 / 93045

Unbeantwortete Forenbeiträge

Stücklisten
vor 3 Wochen von Selma.schwarz 1 / 93045
Belege
vor 3 Wochen von Selma.schwarz 1 / 90346