PatIndex

prüft, ob das angegebene pattern (= Muster), welches Platzhalterzeichen enthalten kann, im zweiten Ausdruck enthalten ist. Es wird entweder die Startposition des ersten Auftretens (> 0) oder 0 zurückgegeben, falls das Muster nicht gefunden wurde. Die Position wird als Zeichenposition, nicht als Byte-Position zurückgegeben, so daß es irrelevant ist, ob es sich um varchar oder um nvarchar-Daten handelt.

Syntax

PatIndex (<%pattern%>, <Zeichenfolgen-Ausdruck>)

Parameterliste

<%pattern%>
Muster, das die zu durchsuchende Zeichenfolge enthält. Prozentzeichen sind Platzhalter (analog zu LIKE), fehlen sie, so wird nach vollständiger Übereinstimmung gesucht.
<Zeichenfolgen-Ausdruck>
Ausdruck, der eine Zeichenfolge oder eine Spalte mit Zeichendaten darstellt
Rückgabewert
Ganzzahl >= 0
Typ
Zeichenfolgen-Funktion

Beispiele

PatIndex('%b%', 'abc') = 2
PatIndex('b%', 'abc') = 0
PatIndex('%bc', 'abc') = 2
Zu beachten ist, daß die Position des Platzhalters nicht beim Rückgabewert berücksichtigt wird. Ansonsten müßte jeder erfolgreiche Fund eine 1 zurückgeben. Der zweite Platzhalter '_' dient für die Suche nach einem einzelnen Zeichen, mit '[%]' kann nach dem Prozentzeichen literal gesucht werden, '[[]' findet eine öffnende eckige Klammer.

Hinweise

Der Operator Like stellt eine ähnliche Funktionalität bereit. Die beiden folgenden Ausdrücke sind fast äquivalent:

Where <Spaltenname> Like 'pattern'
Where PatIndex('pattern', <Spaltenname>) > 0

Die Nicht-Äquivalenz bezieht sich auf die Behandlung eines Pattern, das nur aus Platzhaltern besteht (etwa '%' oder '%%%'). Der Like-Ausdruck findet alle nicht leeren Zeilen, PatIndex liefert für das pattern '%' immer 0, so daß die obige Abfrage keine Zeile zurückliefert.

Zusätzlich kann mit der PatIndex-Funktion in Kombination mit anderen Funktionen wie Left oder Right bsp. der Text ermittelt werden, welcher vor oder nach dem gefundenen Muster notiert ist.

Link zur hiesigen Seite als QR-Code

Kontaktformular:

Schreiben Sie mir und wir bauen gemeinsam Ihre neue Web-Datenbank!

Die Erläuterungen zum Datenschutz habe ich gelesen und stimme diesen zu.

© 2003-2023 Jürgen Auer, Berlin.