FIND( )-Funktion

Gibt einen logischen Wert zurück, der angibt, ob die jeweilige Zeichenfolge in einem bestimmten Feld oder in einem gesamten Datensatz vorhanden war.

Hinweis

Die FIND( )-Funktion und FIND-Befehl sind zwei unterschiedliche Analytics-Funktionen mit beträchtlichen Unterschieden.

Syntax

FIND(Zeichenfolge <;Suchfeld>)

Parameter

Name Typ Beschreibung
Zeichenfolge

Zeichen

Die zu suchende Zeichenfolge. Diese Suche unterscheidet nicht zwischen Groß- und Kleinschreibung.
Suchfeld

Optional

Zeichen

Das Feld oder die Variable, das/die durchsucht werden soll. Falls dies nicht angegeben ist, wird der gesamte Datensatz durchsucht, was auch undefinierte Bereiche des Datensatzes einschließt.

Ausgabe

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

Beispiele

Einfache Beispiele

Einen gesamten Datensatz durchsuchen

Gibt für alle Datensätze, welche die Zeichenfolge „New York“ 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:

FIND("New York")

Ein einzelnes Feld durchsuchen

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

FIND("New York"; Stadt)

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

FIND("Ne"; Stadt)

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

FIND(" New York"; Stadt)

Gibt „T“ für alle Datensätze zurück, die einen Wert im Feld Beschreibung aufweisen, der dem Wert innerhalb der Variable v_Suchbegriff entspricht oder ihn enthält. Gibt ansonsten „F“ zurück:

FIND(v_Suchbegriff; Beschreibung)

Mehrere Felder durchsuchen

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

FIND("New York"; Stadt+Stadt_2)

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

FIND("New York"; Stadt) OR FIND("New York"; Stadt_2)

Mit anderen Funktionen kombinieren

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

FIND(ALLTRIM(Nachname); Nachname_2)

Bemerkungen

Wann Sie FIND( ) verwenden sollen

Verwenden Sie die FIND( )-Funktion, um zu testen, ob die angegebene Zeichenfolge in einem Feld, zwei oder mehr Feldern oder einem gesamten Datensatz vorhanden ist.

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 das optionale Suchfeld nicht angegeben ist, 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 in Suchfeld verketten, wenn Sie eine Teilmenge der Felder in einer Tabelle durchsuchen möchten. Um beispielsweise sowohl das Feld Stadt als auch Stadt_2 nach der Zeichenfolge „New York“ zu durchsuchen, gehen Sie wie folgt vor:

FIND("New York"; Stadt+Stadt_2)

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:

FIND("New York"; Stadt) OR FIND("New York"; Stadt_2)

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

Groß- und Kleinschreibung sowie genaue Zeichenvergleiche

Die FIND( )-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 Suchfeld den Name des Felds angeben. Falls beispielsweise Lieferantenstadt ein Kalkulationsfeld ist, das die Stadt innerhalb einer Adresse isoliert:

FIND("New York"; Lieferantenstadt)

Ein verbundenes Feld durchsuchen

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

FIND("New York"; Lieferant.Lieferantenstadt)

Datumzeit-Daten oder numerische Daten durchsuchen

Es ist möglich, die FIND( )-Funktion zur Suche nach Datumzeit-Daten oder numerischen Daten auf Datensatzebene zu verwenden. Eine Angabe von Suchfeld wird für eine Durchsuchung von Datumzeit-Daten oder numerischen Daten nicht unterstützt.

Die numerische Zeichenfolge oder die Datumzeit-Zeichenfolge muss mit Anführungszeichen umschlossen sein. Sie muss darüber hinaus exakt der Quelldatenformatierung entsprechen und nicht der Formatierung innerhalb der Ansicht.

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

Hinweis

Die Nutzung der FIND( )-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