FINDMULTI( )-Funktion

Gibt einen logischen Wert zurück, der angibt, ob eine beliebige Zeichenfolge in einer Menge aus einer oder mehreren Zeichenfolgen in einem bestimmten Feld oder in einem gesamten Datensatz vorhanden war.

Syntax

FINDMULTI({Suche_in|RECORD}; Zeichenfolge_1 <;...n>)

Parameter

Name Typ Beschreibung
Suche_in | RECORD

Zeichen

Das Feld oder die Variable, das/die durchsucht werden soll.

Geben Sie das Schlüsselwort RECORD an, damit der gesamte Datensatz durchsucht wird, was auch undefinierte Bereiche des Datensatzes einschließt.

Sie können auch eine Feldliste festlegen, indem Sie Feldnamen verketten:

Feld_1+Feld_2+Feld_3
Zeichenfolge_1 <;...n>

Zeichen

Eine oder mehr zu suchende Zeichenfolgen. Mehrere Suchzeichenfolgen trennen Sie durch Semikolons.

FINDMULTI(RECORD; "Joa"; "Jim"; "Joh")

Die Suche erfolgt unabhängig von Groß- oder Kleinschreibung.

Ausgabe

Logisch. Gibt T (true, wahr) zurück, wenn einer der angegebenen Zeichenfolge-Werte gefunden wurde, andernfalls F (false, falsch).

Beispiele

Einfache Beispiele

Einen gesamten Datensatz durchsuchen

Gibt für alle Datensätze, welche „New York“ oder „Chicago“ in einem beliebigen Feld, über Feldgrenzen hinweg und auch in undefinierten Teilen des Datensatzes enthalten, den Wert „T“ zurück. Gibt ansonsten „F“ zurück:

FINDMULTI(RECORD; "New York"; "Chicago")

Ein einzelnes Feld durchsuchen

Gibt „T“ für alle Datensätze zurück, welche die Zeichenfolge „New York“ oder „Chicago“ im Feld Stadt enthalten. Gibt ansonsten „F“ zurück:

FINDMULTI(Stadt; "New York"; "Chicago")

Gibt „T“ für alle Datensätze zurück, welche die Zeichenfolge „Ne“ oder „Chi“ im Feld Stadt enthalten. Gibt ansonsten „F“ zurück:

FINDMULTI(Stadt; "Ne"; "Chi")

Gibt „T“ für alle Datensätze zurück, welche „New York“ oder „Chicago“ mit einem oder mehreren führenden Leerzeichen im Feld Stadt enthalten. Gibt ansonsten „F“ zurück:

FINDMULTI(Stadt; " New York"; " Chicago")

Gibt „T“ für alle Datensätze zurück, die einen Wert im Feld Beschreibung aufweisen, der einem der Werte innerhalb der Variablen v_Suchbegriff entspricht oder sie enthält. Ansonsten wird „F“ zurückgegeben.

FINDMULTI(Beschreibung; v_Suchbegriff_1; v_Suchbegriff_2; v_Suchbegriff_3)

Mehrere Felder durchsuchen

Gibt „T“ für alle Datensätze zurück, welche die Zeichenfolge „New York“ oder „Chicago“ im Feld Stadt oder dem Feld Stadt_2 enthalten. Gibt ansonsten „F“ zurück:

FINDMULTI(Stadt+Stadt_2; "New York"; "Chicago")

Gibt „T“ für alle Datensätze zurück, welche die Zeichenfolge „New York“ oder „Chicago“ im Feld Stadt oder dem Feld Stadt_2 enthalten. Gibt ansonsten „F“ zurück:

FINDMULTI(Stadt; "New York"; "Chicago") OR FINDMULTI(Stadt_2; "New York"; "Chicago")

Mit anderen Funktionen kombinieren

Gibt „T“ für alle Datensätze zurück, die einen Wert im Feld Nachname_1 aufweisen, der dem gekürzten Wert innerhalb der Felder Nachname_2 oder Nachname_3 entspricht oder ihn enthält. Gibt ansonsten „F“ zurück:

FINDMULTI(Nachname_1; ALLTRIM(Nachname_2); ALLTRIM(Nachname_3))

Bemerkungen

Wann Sie FINDMULTI( ) verwenden sollen

Verwenden Sie die FINDMULTI( )-Funktion, um zu testen, ob eine der angegebenen Zeichenfolgen in einem Feld, zwei oder mehr Feldern oder einem gesamten Datensatz vorhanden sind.

Wie ein Abgleich funktioniert

Der Zeichenfolge-Wert kann auf eine genaue Übereinstimmung überprüft werden oder er kann in einer längeren Zeichenfolge enthalten sein. Führende Leerzeichen in Feldern wirken sich auf die Suche nicht aus, es sei denn, ein oder mehrere führende Leerzeichen befinden sich in dem Zeichenfolge-Wert.

Einen gesamten Datensatz durchsuchen

Falls Sie RECORD statt eines Suche_in-Felds angeben, wird der gesamte Datensatz durchsucht, was auch undefinierte Bereiche des Datensatzes einschließt. Feldgrenzen werden bei der Durchsuchung des gesamten Datensatzes ignoriert und nachgestellte Leerzeichen in Feldern werden als Zeichen behandelt.

Hinweis

Wenn Sie einen gesamten Datensatz durchsuchen, wird der physische Datensatz durchsucht. Kalkulationsfelder oder verbundene Felder werden nicht durchsucht.

Eine Teilmenge von Feldern durchsuchen

Sie können zwei oder mehr Felder im Parameter Suche_in verketten, wenn Sie eine Teilmenge der Felder in einer Tabelle durchsuchen möchten. Um beispielsweise sowohl das Feld Stadt als auch Stadt_2 nach den Zeichenfolgen „New York“ oder „Chicago“ zu durchsuchen, gehen Sie wie folgt vor:

FINDMULTI(Stadt+Stadt_2; "New York"; "Chicago")

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( ) zur Entfernung von Leerzeichen verwenden.

Sie können auch einen Ausdruck erstellen, der jedes Feld einzeln durchsucht:

FINDMULTI(Stadt; "New York"; "Chicago") OR FINDMULTI(Stadt_2; "New York"; "Chicago")

Wenn einer der Werte für Zeichenfolge ein führendes Leerzeichen enthält, können sich die Suchergebnisse der beiden Ansätze unterscheiden.

Groß- und Kleinschreibung sowie genaue Zeichenvergleiche

Die FINDMULTI( )-Funktion unterscheidet nicht zwischen Groß- und Kleinschreibung und unterstützt sowohl ASCII- als auch EBCDIC-Zeichen. Die Option Genauer Zeichenvergleich (SET EXACT ON/OFF) wirkt sich auf die Funktion nicht aus.

Ein Kalkulationsfeld durchsuchen

Um ein Kalkulationsfeld zu durchsuchen, müssen Sie in Suche_in den Name des Felds angeben. Falls beispielsweise Lieferantenstadt ein Kalkulationsfeld ist, das die Stadt innerhalb einer Adresse isoliert:

FINDMULTI(Lieferantenstadt; "New York"; "Chicago")

Ein verbundenes Feld durchsuchen

Um ein verbundenes Feld zu durchsuchen, müssen Sie im Wert Suche_in den vollqualifizierten Namen des Felds angeben (d.h. Tabelle.Feldname).

FINDMULTI(Lieferant.Lieferantenstadt; "New York"; "Chicago")

Datumzeit-Daten oder numerische Daten durchsuchen

Es ist möglich, die FINDMULTI( )-Funktion zur Suche nach Datumzeit-Daten oder numerischen Daten auf Datensatzebene zu verwenden, falls Sie RECORD angeben. Die Angabe eines Felds in Suche_in wird für eine Durchsuchung von Datumzeit-Daten oder numerischen Daten nicht unterstützt.

Die Werte in der numerischen Zeichenfolge oder der Datumzeit-Zeichenfolge muss mit Anführungszeichen umschlossen sein. Sie müssen darüber hinaus exakt der Quelldatenformatierung entsprechen und nicht der Formatierung innerhalb der Ansicht.

Die Verwendung der FINDMULTI( )-Funktion zur Durchsuchung von Datumzeit-Daten oder numerischen Daten in Kalkulationsfeldern oder verbundenen Feldern wird nicht unterstützt.

Hinweis

Die Nutzung der FINDMULTI( )-Funktion zur Durchsuchung von Datumzeit-Daten oder numerischen Daten wird nicht empfohlen, weil eine erfolgreiche Suche auf diese Weise schwierig sein kann.

Leitfaden für die Skripterstellung in ACL 14.1