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 (P-Z)

 

PATINDEX-Funktion [Zeichenfolge]

Gibt eine Ganzzahl zurück, die die Startposition des ersten Auftretens eines Musters in einer Zeichenfolge darstellt.

Syntax
PATINDEX( '%Muster%', Zeichenfolgenausdruck ) 
Parameter
  • Muster   Das Muster, nach dem gesucht wird. Wenn der führende Prozent-Platzhalter weggelassen wird, gibt die PATINDEX-Funktion "1" zurück, falls das Muster am Anfang der Zeichenfolge auftritt, und "0", falls nicht.

    Das Muster verwendet dieselben Platzhalter wie der LIKE-Vergleich. Das sind die folgenden:

    Wildcard-Zeichen Gefunden
    _ (Unterstrich) Ein Zeichen
    % (Prozent) Eine Zeichenfolge mit null oder mehr Zeichen
    [] Ein einzelnes Zeichen im angegebenen Bereich oder Menge
    [^] Ein einzelnes Zeichen außerhalb des angegebenen Bereichs oder Menge

  • Zeichenfolgenausdruck   Die Zeichenfolge, die nach dem Muster durchsucht werden soll

Rückgabe

INT

Bemerkungen

Die PATINDEX-Funktion gibt die Startposition des ersten Auftretens des Musters zurück. Wenn das Muster nicht gefunden wird, wird "0" zurückgegeben.

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

Beispiel

Die folgende Anweisung liefert den Wert 2.

SELECT PATINDEX( '%hoco%', 'chocolate' );

Die folgende Anweisung liefert den Wert 11.

SELECT PATINDEX( '%4_5_', '0a1A 2a3A 4a5A' );

Die folgende Anweisung gibt 14 zurück, also das erste, nicht alphanumerische Zeichen im Zeichenfolgenausdruck. Beachten Sie, dass das Muster '%[^a-z0-9]%' anstelle von '%[^a-zA-Z0-9]%' verwendet werden kann, wenn die Datenbank die Groß- und Kleinschreibung nicht berücksichtigt.

SELECT PATINDEX( '%[^a-zA-Z0-9]%', 'SQLAnywhere11 has many new features' );

Um das erste alphanumerische Wort in einer Zeichenfolge zu erhalten, können Sie einen Befehl der folgenden Art benutzen:

SELECT LEFT( @string, PATINDEX( '%[^a-zA-Z0-9]%', @string ) );