Liefert einen logischen Wert, der angibt, ob eine Zeichenfolge einer spezifisch formatierten anderen Zeichenfolge mit Platzhaltern, Literalzeichen oder beidem entspricht.

MAP(Zeichenfolge; Format)
Name Typ Beschreibung
Zeichenfolge

Zeichen

Das Feld, der Ausdruck oder der Literalwert, das/der auf Übereinstimmungen zu überprüfen ist.
Format

Zeichen

Das Datenmuster oder die Zeichenfolge, die Sie mit der Zeichenfolge vergleichen möchten.

Format kann Platzhalterzeichen, Literale oder eine Kombination aus beidem enthalten.

"\9\9\9-999-9999"

Es werden die folgenden Platzhalterzeichen unterstützt:

  • "X" – Zum Vergleich beliebiger alphabetischer Zeichen (a-z, A-Z, europäische Zeichen). Dieses Platzhalterzeichen unterscheidet nicht zwischen Groß- und Kleinschreibung. Sie können "X" oder "x" benutzen.
  • "9" – entspricht einer beliebigen Ziffer (0-9)
  • "!" – entspricht beliebigen Zeichen, die keine Leerzeichen sind
  • "?" – entspricht einem beliebigen Zeichen, einschließlich Leerzeichen
  • "\" – ein Escapezeichen, das angibt, dass das unmittelbar folgende Zeichen ein Literal ist. Verwenden Sie das Escapezeichen, wenn Sie nach einem der Platzhalterzeichen suchen möchten (X, x, 9, !, ?).
  • "\\" – gibt einen umgekehrten Schrägstrich als Literal an

Logisch. Gibt T (wahr) zurück, wenn eine Übereinstimmung gefunden wurde. Andernfalls wird F (falsch) zurückgegeben.

Einfache Beispiele

Einfache Suchmuster

Gibt „T“ zurück:

MAP("ABC Plumbing"; "xxx")

Gibt „F“ zurück (Zeichenfolge weist nur drei Zahlen auf, obwohl mindestens vier benötigt werden):

MAP("045"; "9999")

Platzhalter mit Escapezeichen markieren

Wenn Sie möchten, dass „T“ nur für Werte zurückgegeben wird, die mit dem Literalzeichen „X“ gefolgt von einem zweiten Zeichen beginnen, stellt der Format-Parameter „\XX"“ sicher, dass das erste „X“ im Parameter als Literal und nicht als Platzhalter ausgewertet wird.

Gibt „T“ zurück:

MAP("XA-123"; "XX")
MAP("GC-123"; "XX")
MAP("XA-123"; "\XX")

Gibt „F“ zurück:

MAP("GC-123"; "\XX")

Felder und Muster

Gibt für alle Datensätze „T“ zurück, deren Rechnungsnummern aus zwei Zeichen, gefolgt von fünf Ziffern bestehen oder damit beginnen. Gibt ansonsten „F“ zurück:

MAP(Rechnungsnummer; "XX99999")

Gibt für alle Datensätze mit den genauen Rechnungsnummern „AB12345“ oder Rechnungsnummern, die mit „AB12345“ beginnen, „T“ zurück. Gibt ansonsten „F“ zurück:

MAP(Rechnungsnummer; "AB12345")

Gibt für alle Datensätze „T“ zurück, deren Rechnungsnummern aus „AB“, gefolgt von fünf Ziffern bestehen oder damit beginnen. Gibt ansonsten „F“ zurück:

MAP(Rechnungsnummer; "AB99999")

Gibt für alle Datensätze „T“ zurück, die nicht dem Standardformat von US-Sozialversicherungsnummern im Feld „SVN“ entsprechen. Gibt ansonsten „F“ zurück:

NOT MAP(SVN;"999-99-9999")

Weiterführende Beispiele

Datensätze mit Produktcodes extrahieren, die zehn Zeichen umfassen und mit „859-“ beginnen

Sie können lediglich die Datensätze extrahieren, deren Produktcodes mindestens zehn Zeichen lang sind und die mit den Zeichen „859-“ beginnen, indem Sie eine IF-Anweisung und die MAP( )-Funktion verwenden:

EXTRACT RECORD IF MAP(Produktcode; "85\9-999999") TO "Lange_Codes_859"

Wann Sie MAP( ) verwenden sollen

Verwenden Sie die MAP( ) Funktion, um nach Mustern oder bestimmten Formaten in alphanumerischen Daten zu suchen. Die Muster oder Formate können Platzhalterzeichen, Literale oder eine Kombination aus beidem enthalten.

Beachtung der Groß- und Kleinschreibung

Die MAP( )-Funktion unterscheidet beim Vergleich von zwei Literalzeichen zwischen Groß- und Kleinschreibung. „a“ entspricht beispielsweise nicht „A“.

Wenn Zeichenfolge Daten mit inkonsistenter Groß- und Kleinschreibung enthält, können Sie die Funktion UPPER( ) verwenden, um die Werte vor Verwendung von MAP( ) in eine konsistente Groß- und Kleinschreibung zu konvertieren.

Beispiel:

MAP(UPPER(Rechnungsnummer); "AB99999")

Teilweise Übereinstimmung

MAP( ) unterstützt in einer Situation eine teilweise Übereinstimmung, aber nicht in der anderen.

Die Option Genauer Zeichenvergleich (SET EXACT ON/OFF) wirkt sich auf die teilweise Übereinstimmung in MAP( ) nicht aus.

Teilweise Übereinstimmung unterstützt

Eine teilweise Übereinstimmung wird unterstützt, wenn der Wert in Format kürzer als der Wert in Zeichenfolge ist.

Gibt „T“ zurück, weil Format sieben Zeichen und Zeichenfolge neun Zeichen lang ist:

MAP("AB1234567"; "AB99999")

Hinweis

Damit „Wahr“ zurückgegeben wird, muss der Wert in Format am Anfang des Werts von Zeichenfolge erscheinen.

Teilweise Übereinstimmung nicht unterstützt

Eine teilweise Übereinstimmung wird nicht unterstützt, wenn der Wert in Format länger als der Wert in Zeichenfolge ist.

Gibt „F“ zurück, weil Format sieben Zeichen und Zeichenfolge sechs Zeichen lang ist:

MAP("AB1234"; "AB99999")

Falls Format länger ist als Zeichenfolge, lautet das Ergebnis stets „Falsch“.

Berücksichtigung von Leerräumen

Leerräume werden als Zeichen behandelt und können auf zwei Arten berücksichtigt werden:

  • Leerräume als Literal vergleichen, indem Leerräume in Format an der geeigneten Stelle eingefügt werden
  • den Platzhalter „?“ verwenden, der beliebigen Zeichen und so auch Leerräumen entspricht

Falls notwendig, können Sie die Funktionen TRIM( ), LTRIM( ) oder ALLTRIM( ) verwenden, um führende oder nachgestellte Leerzeichen aus Zeichenfolge zu entfernen. Dadurch wird sichergestellt, dass nur Textzeichen und intern enthaltene Leerzeichen verglichen werden.

Verketten von Feldern

Sie können zwei oder mehr Felder in Zeichenfolge verketten, wenn Sie mehr als ein Feld in einer Tabelle durchsuchen möchten. Die verketteten Felder werden wie ein einzelnes Feld behandelt, das führende und nachgestellte Leerzeichen der einzelnen Felder enthält, solange Sie nicht die Funktion ALLTRIM( ) zu ihrer Entfernung verwenden.