CHARINDEX (Transact-SQL)

Gibt die Startposition des angegebenen Ausdrucks in einer Zeichenfolge zurück.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

CHARINDEX ( expression1 ,expression2 [ , start_location ] ) 

Argumente

  • expression1
    Ein Ausdruck, der die zu suchende Zeichenfolge enthält. expression1 ist ein Ausdruck aus der Kategorie Zeichenfolgen-Datentyp.
  • expression2
    Ein Ausdruck (normalerweise eine Spalte), in dem nach der angegebenen Sequenz gesucht wird. expression2 ist ein Ausdruck aus der Kategorie Zeichenfolgen-Datentyp.
  • start_location
    Die Zeichenposition, an der die Suche nach expression1 in expression2 begonnen wird. Wenn start_location nicht angegeben wird, eine negative Zahl oder Null ist, wird die Suche am Anfang von expression2 begonnen. start_location kann vom Typ bigint sein.

Rückgabetypen

bigint, wenn expression2 vom Datentyp varchar(max), nvarchar(max) oder varbinary(max) ist, andernfalls int.

Hinweise

Wenn entweder expression1 oder expression2 einen Unicode-Datentyp (nvarchar oder nchar) aufweist, der andere Ausdruck jedoch nicht, wird der andere Ausdruck in einen Unicode-Datentyp konvertiert. CHARINDEX kann nicht mit den Datentypen text, ntext und image verwendet werden.

Wenn entweder expression1 oder expression2 NULL ist, gibt CHARINDEX den Wert NULL zurück, wenn der Kompatibilitätsgrad der Datenbank 70 oder höher ist. Wenn der Kompatibilitätsgrad der Datenbank 65 oder niedriger ist, gibt CHARINDEX nur dann NULL zurück, wenn sowohl expression1 als auch expression2 NULL sind.

Wenn expression1 in expression2 nicht gefunden wird, gibt CHARINDEX 0 zurück.

CHARINDEX führt Vergleiche basierend auf der Sortierung der Eingabe aus. Zum Ausführen eines Vergleichs in einer angegebenen Sortierung können Sie mit COLLATE eine explizite Sortierung auf die Eingabe anwenden.

Die zurückgegebene Startposition ist 1-basiert, nicht 0-basiert.

Beispiele

Im folgenden Codebeispiel wird die Position zurückgegeben, an der die Sequenz bicycle in der DocumentSummary-Spalte der Document-Tabelle beginnt.

USE AdventureWorks;
GO
SELECT CHARINDEX('bicycle', DocumentSummary)
FROM Production.Document
WHERE DocumentID = 3;
GO

Dies ist das Resultset.

----------- 
48          

Im folgenden Beispiel wird der optionale start_location-Parameter verwendet, um die Suche nach bicycle beim fünften Zeichen in der DocumentSummary-Spalte zu beginnen.

USE AdventureWorks;
GO
SELECT CHARINDEX('bicycle', DocumentSummary, 5)
FROM Production.Document
WHERE DocumentID = 3;
GO

Dies ist das Resultset.

----------- 
48          

(1 row(s) affected)

Im folgenden Beispiel wird das Resultset dargestellt, wenn expression1 in expression2 nicht gefunden wird.

USE AdventureWorks;
GO
SELECT CHARINDEX('bike', DocumentSummary)
FROM Production.Document
WHERE DocumentID =6;
GO

Dies ist das Resultset.

----------- 
0          

(1 row(s) affected)

Im folgenden Beispiel wird die COLLATE-Funktion verwendet.

USE tempdb;
GO
SELECT CHARINDEX ( 'Test', 'Das ist ein Test'  COLLATE Latin1_General_BIN);
GO

Siehe auch

Verweis

+ (Verketten von Zeichenfolgen) (Transact-SQL)
Zeichenfolgenfunktionen (Transact-SQL)

Hilfe und Informationen

Informationsquellen für SQL Server 2005