(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

CHARINDEX (Transact-SQL)

Sucht in einem Ausdruck nach einem anderen Ausdruck und gibt dessen Startposition zurück, falls gefunden.

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

CHARINDEX ( expressionToFind ,expressionToSearch [ , start_location ] )

expressionToFind

Ein Zeichenausdruck, der die zu suchende Sequenz enthält. expressionToFind ist auf 8000 Zeichen beschränkt.

expressionToSearch

Der zu suchende Zeichenausdruck.

start_location

Ist eine integer oder ein bigint-Ausdruck, bei dem die Suche beginnt. Wenn start_location nicht angegeben wird, eine negative Zahl oder 0 ist, wird die Suche am Anfang von expressionToSearch begonnen.

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

Wenn entweder expressionToFind oder expressionToSearch 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 expressionToFind oder expressionToSearch NULL ist, gibt CHARINDEX NULL zurück.

Wenn expressionToFind in expressionToSearch 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 mithilfe von COLLATE eine ausdrückliche Sortierung auf die Eingabe anwenden.

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

0x0000 (char(0)) ist ein nicht definiertes Zeichen in Windows-Sortierungen und kann nicht in CHARINDEX enthalten sein.

Ergänzende Zeichen (Ersatzpaare)

Bei Verwendung von SC-Sortierungen werden Ersatzpaare sowohl von start_location als auch vom Rückgabewert als ein Zeichen, nicht zwei Zeichen, gezählt. Weitere Informationen finden Sie unter Sortierung und Unicode-Unterstützung.

A.Zurückgeben der Startposition eines Ausdrucks

Im folgenden Beispiel wird die Position zurückgegeben, an der die Zeichenfolge bicycle in der DocumentSummary-Spalte der Document-Tabelle in der AdventureWorks2012-Datenbank beginnt.

DECLARE @document varchar(64);
SELECT @document = 'Reflectors are vital safety' +
                   ' components of your bicycle.';
SELECT CHARINDEX('bicycle', @document);
GO

Dies ist das Resultset.

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

B.Suchen ab einer bestimmten Position

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

DECLARE @document varchar(64);

SELECT @document = 'Reflectors are vital safety' +
                   ' components of your bicycle.';
SELECT CHARINDEX('vital', @document, 5);
GO

Dies ist das Resultset.

----------- 
16          

(1 row(s) affected)

C.Suchen nach einem nicht vorhandenen Ausdruck

Im folgenden Beispiel wird das Resultset dargestellt, wenn expressionToFind in expressionToSearch nicht gefunden wird.

DECLARE @document varchar(64);

SELECT @document = 'Reflectors are vital safety' +
                   ' components of your bicycle.';
SELECT CHARINDEX('bike', @document);
GO

Dies ist das Resultset.

-----------

0

(1 row(s) affected)

D.Ausführen einer Suche unter Beachtung der Groß-/Kleinschreibung

Im folgenden Beispiel wird eine Suche nach der Zeichenfolge 'TEST' in 'This is a Test' ausgeführt, wobei Groß-/Kleinschreibung berücksichtigt wird.

USE tempdb;
GO
--perform a case sensitive search
SELECT CHARINDEX ( 'TEST',
       'This is a Test'
       COLLATE Latin1_General_CS_AS);

Dies ist das Resultset.

-----------

0

Im folgenden Beispiel wird eine Suche nach der Zeichenfolge 'Test' in 'Das ist ein Test' ausgeführt, wobei Groß-/Kleinschreibung berücksichtigt wird.

USE tempdb;
GO
SELECT CHARINDEX ( 'Test',
       'This is a Test'
       COLLATE Latin1_General_CS_AS);

Dies ist das Resultset.

-----------

13

E.Ausführen einer Suche ohne Beachtung der Groß-/Kleinschreibung

Im folgenden Beispiel wird eine Suche nach der Zeichenfolge 'TEST' in 'Das ist ein Test' ausgeführt, wobei Groß-/Kleinschreibung nicht berücksichtigt wird.

USE tempdb;
GO
SELECT CHARINDEX ( 'TEST',
       'This is a Test'
       COLLATE Latin1_General_CI_AS);
GO

Dies ist das Resultset.

-----------

13

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft