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:
Code language: SQL (Structured Query Language) (sql)PATINDEX ( '%pattern%' , input_string )
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 OperatorLIKE
verwendet 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'
:
Code language: SQL (Structured Query Language) (sql)SELECT PATINDEX('%ern%', 'SQL Pattern Index') position;
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:
Code language: SQL (Structured Query Language) (sql)SELECT PATINDEX('%f__ction%', 'SQL Server String Function') position;
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.
Code language: SQL (Structured Query Language) (sql)SELECT product_name, PATINDEX('%2018%', product_name) positionFROM production.productsWHERE product_name LIKE '%2018%'ORDER BY product_name;
Das folgende Bild zeigt die Teilausgabe:
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.
Leave a Reply