Articles

SQL Server PATINDEX-Funktion

Zusammenfassung: In diesem Tutorial haben Sie gelernt, wie Sie die SQL Server PATINDEX() -Funktion verwenden, um die Position eines Musters in einer Zeichenfolge zu ermitteln.

SQL Server PATINDEX() Übersicht

Die PATINDEX() Funktion gibt die Position des ersten Auftretens eines Musters in einem String zurück. Die Syntax der Funktion PATINDEX() lautet wie folgt:

PATINDEX ( '%pattern%' , input_string )
Code language: SQL (Structured Query Language) (sql)

Die Funktion PATINDEX() akzeptiert zwei Argumente:

  • pattern ist ein zu findender Zeichenausdruck. Es kann Platzhalterzeichen wie % und '_' im Muster enthalten. Die Bedeutungen der Platzhalter sind die gleichen wie sie mit dem Operator LIKEverwendet werden.
  • input_string ist eine Zeichenkette, in der das Muster gesucht werden soll.

Die PATINDEX() gibt eine Ganzzahl zurück, die die Position des ersten Auftretens der pattern in der input_string oder Null des Musters angibt nicht gefunden. Die Funktion PATINDEX() gibt NULL zurück, wenn entweder pattern oder input_string NULL ist.

Beachten Sie, dass PATINDEX() das Muster basierend auf der Sortierung der Eingabe sucht. Wenn Sie eine bestimmte Sortierung verwenden möchten, können Sie die Klausel COLLATE explizit verwenden.

SQL Server PATINDEX() Funktionsbeispiele

Nehmen wir einige Beispiele für die Verwendung der PATINDEX() Funktion.

A) SQL Server PATINDEX() einfaches Beispiel

Dieses Beispiel gibt die Startposition der Teilzeichenfolge 'ern' in der Zeichenfolge 'SQL Pattern Index':

SELECT PATINDEX('%ern%', 'SQL Pattern Index') position;
Code language: SQL (Structured Query Language) (sql)

Hier ist die Ausgabe:

position-----------9(1 row affected)

B) Verwenden von SQL Server PATINDEX() mit mehreren Platzhaltern Beispiel

Dieses Beispiel verwendet % und _ Platzhalter, um die Position zu finden, an der das Muster 'f' , gefolgt von zwei beliebigen Zeichen und 'ction' beginnt in der 'SQL Server String Function' Zeichenfolge:

SELECT PATINDEX('%f__ction%', 'SQL Server String Function') position;
Code language: SQL (Structured Query Language) (sql)

Die Ausgabe ist wie folgt:

Position-----------19(1 row affected)

C) Verwenden der SQL Server-Funktion PATINDEX() mit Tabellenspaltenbeispiel

In diesem Beispiel wird die Position des ersten Auftretens des Musters 2018 in Werten der product_name Spalte in der production.products Tabelle aus der Beispieldatenbank.

SELECT product_name, PATINDEX('%2018%', product_name) positionFROM production.productsWHERE product_name LIKE '%2018%'ORDER BY product_name;
Code language: SQL (Structured Query Language) (sql)

Das folgende Bild zeigt die Teilausgabe:

SQL Server PATINDEX Funktion Beispiel

In diesem Tutorial haben Sie gelernt, wie Sie die SQL Server PATINDEX() Funktion verwenden, um die Position des ersten Auftretens eines Musters in einer Zeichenfolge zu finden.