Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Funktionen » SQL-Funktionen (E-O)

 

LOCATE-Funktion [Zeichenfolge]

Gibt die Position einer Zeichenfolge in einer anderen zurück

Syntax
LOCATE(Zeichenfolgenausdruck-1,,Zeichenfolgenausdruck-2 [, Ganzzahlausdruck ] )
Parameter
  • Zeichenfolgenausdruck-1   Die zu durchsuchende Zeichenfolge.

  • Zeichenfolgenausdruck-2   Die Zeichenfolge, nach der gesucht wird. Die Zeichenfolge ist auf 255 Byte beschränkt.

  • Ganzzahlausdruck   Die Zeichenposition in der Zeichenfolge, an der die Suche beginnen soll. Das erste Zeichen hat Position 1. Wenn das Start-Offset negativ ist, gibt die locate-Funktion anstatt des ersten den letzten passenden Zeichenfolgen-Offset zurück. Ein negativer Offset gibt an, wieviel vom Ende einer Zeichenfolge von der Suche auszunehmen ist. Die Anzahl der ausgeschlossenen Byte wird mit der folgenden Formel berechnet: (-1 * Offset) -1.

Rückgabe

INT

Bemerkungen

Wenn ein Ganzzahlausdruck angegeben ist, startet die Suche an dieser Position der Zeichenfolge.

Die erste Zeichenfolge kann lang sein (länger als 255 Byte), die zweite ist aber auf 255 Byte begrenzt. Wenn eine lange Zeichenfolge als zweites Argument angegeben wird, gibt die Funktion NULL zurück. Wenn die Zeichenfolge nicht gefunden wird, wird "0" zurückgegeben. Die Suche nach einer Zeichenfolge mit Länge null gibt "1" zurück. Falls eines der Argumente NULL ist, ist das Ergebnis NULL.

Wenn Mehrbytezeichen mit der richtigen Kollatierung verwendet werden, können sich die Startposition und der Rückgabewert von den byte-Positionen unterscheiden.

Diese Funktion unterstützt NCHAR-Eingaben bzw. Ausgaben.

Siehe auch
Standards und Kompatibilität
  • SQL/2003   Erweiterung des Herstellers

Beispiel

Die folgende Anweisung liefert den Wert 8.

SELECT LOCATE(
   'office party this week - rsvp as soon as possible',
   'party',
   2 );

Die folgende Anweisung

BEGIN
   DECLARE STR LONG VARCHAR;
   DECLARE POS INT;
   SET str = 'c:\test\functions\locate.sql';
   SET pos = LOCATE( str, '\', -1 );
   select str, pos,
      SUBSTR( str, 1, pos -1 ) AS path,
      SUBSTR( str, pos +1 ) AS filename;
END;

Es wird diese Ausgabe ausgegeben:

str Position Pfad Dateiname
c:\test\functions\locate.sql 18 c:\test\functions locate.sql