Gibt eine festgelegte Teilzeichenfolge einer Zeichenfolge zurück.

SUBSTR(Zeichenfolge; Start; Länge)
Name Typ Beschreibung
Zeichenfolge Zeichen

Das Feld, der Ausdruck oder Literalwert, aus dem die Teilzeichenfolge zu extrahieren ist.

Start numerisch

Die Position des ersten Zeichens der Teilzeichenfolge.

Die numerischen Positionen der Zeichen in Zeichenfolge beginnen mit 1. Um eine Teilzeichenfolge ab C aus der Zeichenfolge ABCDEF zu extrahieren, würden Sie den Startwert 3 angeben.

Länge numerisch

Die Anzahl der Zeichen in der Teilzeichenfolge.

Wenn die Länge 0 ist, bleibt die Ausgabe leer.

Zeichen.

Einfache Beispiele

Literale Zeicheneingabe

Gibt „BCD“ zurück:

SUBSTR("ABCDEF"; 2; 3)

Gibt „EF“ zurück:

SUBSTR("ABCDEF", 5, 10)

Strukturierte Zeichendaten analysieren

Gibt „189543“ zurück:

SUBSTR("***189543***"; 4; 6)

Gibt das vierstellige Jahr eines Zeichenfelds mit Datumswerten im Format „MM/TT/JJJJ“ zurück:

SUBSTR(DATE; 7; 4)

Weiterführende Beispiele

Feldlänge erhöhen

Verwenden Sie SUBSTR( ), um die Länge eines Zeichenfelds zu erhöhen. Das Anheben der Feldlänge ist ein üblicher Harmonisierungsschritt, den Sie unter Umständen für das Zusammenführen oder Anhängen zweier Felder durchführen müssen.

Das folgende Beispiel füllt das Feld Produktbeschreibung mit Leerzeichen auf, um das Kalkulationsfeld Produktbeschreibung_lang mit einer Länge von 50 Zeichen zu erstellen.

DEFINE FIELD Produktbeschreibung_lang COMPUTED SUBSTR(Produktbeschreibung; 1; 50)

Funktionsweise

Die SUBSTR( )-Funktion gibt die Zeichen des Wertes in Zeichenfolge zurück, beginnend an der in Start angegebenen Zeichenposition. Die Anzahl der zurückgegebenen Zeichen wird in Länge angegeben.

Wie SUBSTR( ) Leerzeichen behandelt

Leerzeichen, die am Anfang, am Ende oder innerhalb einer Zeichenfolge auftreten, werden wie Zeichen behandelt. Leerzeichen, die von Start und Länge erfasst werden, sind in der Ausgabezeichenfolge enthalten.

Wie Auffüllung funktioniert

Wenn der Wert in Länge die Anzahl der Zeichen von der Startposition bis zum Ende der Zeichenfolge einschließlich der nachgestellten Leerzeichen übersteigt, wird die Ausgabezeichenfolge möglicherweise rechts mit Leerzeichen aufgefüllt.

Mit Leerzeichen auffüllen

Wenn Sie SUBSTR( ) innerhalb eines Befehls verwenden, der ein Feld erstellt, wird die Ausgabe mit Leerzeichen aufgefüllt.

Auffüllen bei der Erstellung eines Kalkulationsfelds

Erstellt das Kalkulationsfeld Produktbeschreibung_lang mit einer Länge von 50 Zeichen auf Basis des physischen Felds Produktbeschreibung mit einer Länge von 24 Zeichen:

DEFINE FIELD Produktbeschreibung_lang COMPUTED SUBSTR(Produktbeschreibung; 1; 50)

Auffüllen beim Extrahieren eines physischen Felds

Extrahiert das Feld Produktbeschreibung_lang mit einer Länge von 50 Zeichen in eine neue Tabelle auf Basis des physischen Felds Produktbeschreibung mit einer Länge von 24 Zeichen:

EXTRACT FIELDS SUBSTR(Produktbeschreibung; 1; 50) AS "Produktbeschreibung_lang" TO neue_Tabelle

Nicht mit Leerzeichen aufgefüllt

Wenn Sie SUBSTR( ) in einer Variablendefinition oder einem Ausdruck verwenden, wird die Ausgabe nicht mit Leerzeichen aufgefüllt.

Kein Auffüllen bei der Definition einer Variable

Erstellt die Variable v_Produkbeschreibung mit einer Länge von 24 Zeichen auf Basis der Feldlänge Produktbeschreibung:

ASSIGN v_Produkbeschreibung = SUBSTR(Produkbeschreibung; 1; 50)

Hinweis

Obwohl SUBSTR( ) eine Länge von 50 Zeichen festlegt, ist die Ausgabe auf die Feldlänge von Produktbeschreibung beschränkt.

Verwandte Funktionen

SUBSTR( ) und SPLIT( ) geben ein Datensegment aus einer längeren Quellzeichenfolge zurück.

  • SUBSTR( ) identifiziert das Segment auf Basis einer numerischen Zeichenposition.
  • SPLIT( ) identifiziert das Segment auf Basis eines Trennzeichens.