AT( )-Funktion

Gibt eine Zahl zurück, die angibt, wo eine Teilzeichenfolge innerhalb eines Zeichenwerts beginnt.

Syntax

AT(Zahl_des_Auftretens; Suchzeichenfolge; Volltext)

Parameter

Name Typ Beschreibung
Zahl_des_Auftretens

numerisch

Das Auftreten (Instanz) von Suchzeichenfolge, dessen Ort zurückgegeben werden soll.

Geben Sie beispielsweise 1 ein, um den Beginn des ersten Vorkommens von Suchzeichenfolge zu erhalten.

Suchzeichenfolge

Zeichen

Die zu suchende Teilzeichenfolge in Volltext. Beim Wert wird die Groß- und Kleinschreibung beachtet.

Wenn Suchzeichenfolge doppelte Anführungszeichen enthält, müssen Sie den Wert mit einfachen Anführungszeichen umschließen:

AT(1;'"Test"'; Beschreibung)
Volltext Zeichen

Der Wert, in dem gesucht werden soll.

Sie können zwei oder mehr Felder im Parameter Volltext verketten, wenn Sie mehr als ein Feld in einer Tabelle durchsuchen möchten:

AT(1;'"Test"'; Beschreibung+Übersicht)

Ausgabe

Numerisch. Gibt den Beginn des angegebenen Vorkommens des Werts Zeichenfolge (als Byte-Position) zurück. Wenn keine Übereinstimmungen gefunden werden, wird 0 zurückgegeben.

Beispiele

Einfache Beispiele

Gefundene Vorkommen

Gibt „4“ zurück:

AT(1; "-"; "604-669-4225")

Gibt „8“ zurück:

AT(2; "-"; "604-669-4225")

Keine Vorkommen gefunden

Gibt „0“ zurück, weil sich kein dritter Bindestrich im Wert befindet.

AT(3; "-"; "604-669-4225")

Gibt „0“ zurück, weil sich kein viertes kleingeschriebenes „a“ im Wert befindet.

AT(4; "a"; "Alabama")

Zeichengruppen

Gibt „5“ zurück:

AT(2; "iss"; "Mississippi")

Ein Feld durchsuchen

Gibt die Byte-Position des ersten Bindestrichs in jedem Wert des Felds Rechnungsnummer zurück:

AT(1; "-"; Rechnungsnummer)

Weiterführende Beispiele

Suchen von Rechnungsnummern, in denen der zweite Bindestrich nach dem zehnten Byte auftritt

Sie können die Konsistenz von Rechnungsnummern in einer Tabelle mit der AT( )-Funktion analysieren und einen Filter erstellen, der dem folgenden Beispiel ähnelt. Dieser Filter isoliert alle Datensätze, in denen die Rechnungsnummer zwei oder mehrere Bindestriche enthält und der zweite Bindestrich nach dem zehnten Byte auftritt:

SET FILTER TO AT(2; "-"; Rechnungsnummer) > 10

Bemerkungen

Wann sollte AT( ) verwendet werden?

Verwenden Sie diese Funktion, um die Startpositionen innerhalb eines Zeichenwerts abzurufen:

  • die Startposition einer Teilzeichenfolge
  • die Startposition des späteren Auftretens einer Teilzeichenfolge

Wenn Sie nur bestätigen möchten, dass dieselbe Teilzeichenfolge mehrmals in einem Feld vorkommt, ist die Funktion OCCURS( ) eine bessere Alternative. Weitere Informationen finden Sie unter OCCURS( )-Funktion.

Rückgabewert, falls Zahl_des_Auftretens die Anzahl von Vorkommen überschreitet

Wenn Zahl_des_Auftretens größer als die tatsächliche Anzahl der Teilzeichenfolgen innerhalb von Volltext ist, gibt die Funktion „0“ zurück, weil sie ein Auftreten der Teilzeichenfolge in einer solchen Häufigkeit nicht finden kann.

Verkettete Felder und Rückgabewerte

Wenn Sie mehr als ein Feld durchsuchen, ist der zurückgegebene Wert der Instanz der Start von Suchzeichenfolge über alle von Ihnen festgelegte Felder hinweg. 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.

Wenn Sie beispielsweise nach dem ersten Auftreten einer Zeichenfolge in zwei Feldern mit einer Breite von jeweils acht Zeichen suchen und die Zeichenfolge am Beginn des zweiten Felds gefunden wird, ist der Rückgabewert „9“.

Leitfaden für die Skripterstellung in ACL 14.1