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.