Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
CHARINDEXFunktion
Gibt den Ort der angegebenen Unterzeichenfolge innerhalb einer Zeichenfolge zurück.
Ähnliche Funktionen finden Sie unter POSITIONFunktion und STRPOSFunktion.
Syntax
CHARINDEX( substring, string )
Argumente
- substring
-
Die Unterzeichenfolge, die innerhalb der Zeichenfolge gesucht werden soll.
- string
-
Die Zeichenfolge oder Spalte, die durchsucht werden soll.
Rückgabetyp
- INTEGER
-
Die CHARINDEX Funktion gibt einen Wert zurück, der der Position der Teilzeichenfolge
INTEGER
entspricht (einsbasiert, nicht nullbasiert). Die Position basiert auf der Anzahl der Zeichen, nicht der Bytes. Daher werden Zeichen mit mehreren Bytes als einzelne Zeichen gezählt. CHARINDEXgibt zurück0
, wenn die Teilzeichenfolge nicht in der Zeichenfolge gefunden wird.
Beispiele
Verwenden Sie das folgende Beispiel, um die Position der Zeichenfolge fish
innerhalb des Worts dog
zu zeigen.
SELECT CHARINDEX('fish', 'dog');
+-----------+ | charindex | +-----------+ | 0 | +-----------+
Verwenden Sie das folgende Beispiel, um die Position der Zeichenfolge fish
innerhalb des Worts dogfish
zu zeigen.
SELECT CHARINDEX('fish', 'dogfish');
+-----------+ | charindex | +-----------+ | 4 | +-----------+
Im folgenden Beispiel wird die SALES Tabelle aus der TICKIT Beispieldatenbank verwendet. Weitere Informationen finden Sie unter Beispieldatenbank.
Verwenden Sie das folgende Beispiel, um die Anzahl der einzelnen Verkaufstransaktionen mit einer Provision von über 999,00 aus der SALES Tabelle zurückzugeben. Dieser Befehl zählt Provisionen über 999,00, indem geprüft wird, ob die Dezimalzahl mehr als 4 Stellen vom Anfang des Provisionswerts entfernt ist.
SELECT DISTINCT CHARINDEX('.', commission), COUNT (CHARINDEX('.', commission)) FROM sales WHERE CHARINDEX('.', commission) > 4 GROUP BY CHARINDEX('.', commission) ORDER BY 1,2;
+-----------+-------+ | charindex | count | +-----------+-------+ | 5 | 629 | +-----------+-------+