Liefert einen logischen Wert, der angibt, ob eine Zeichenfolge einer spezifisch formatierten anderen Zeichenfolge mit Platzhaltern, Literalzeichen oder beidem entspricht.
Syntax
MAP(Zeichenfolge; Format)
Parameter
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:
|
Ausgabe
Logisch. Gibt T (wahr) zurück, wenn eine Übereinstimmung gefunden wurde. Andernfalls wird F (falsch) zurückgegeben.
Beispiele
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"
Bemerkungen
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.