Gibt die Position einer Zeichenfolge in einer anderen zurück
LOCATE(Zeichenfolgenausdruck-1,,Zeichenfolgenausdruck-2 [, Ganzzahlausdruck ] )
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.
INT
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.
SQL/2003 Erweiterung des Herstellers
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 |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |