Gibt eine festgelegte Teilzeichenfolge einer Zeichenfolge zurück.
Syntax
SUBSTR(Zeichenfolge; Start; Länge)
Parameter
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. |
Ausgabe
Zeichen.
Beispiele
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)
Bemerkungen
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.