SQL Server Charindex -Funktion

SQL Server Charindex -Funktion
Saiten sind grundlegende Bausteine ​​in der Welt der Entwicklung. Auch in Datenbanken stoßen wir auf Fälle, in denen wir String -Operationen ausführen müssen.

Eine nützliche SQL -Serverfunktion ist die Funktion charIdex (). Diese Funktion gibt die Indexposition eines Substrings zurück.

In dieser Anleitung wird untersucht.

Grundnutzung

Wir haben hauptsächlich die Charindex -Funktion verwendet, um ein Substring aus einer bestimmten Position zu lokalisieren/zu suchen. Die Funktion gibt die Position des Substrings zurück, falls gefunden.

Die Syntax der Funktion lautet wie:

charIndex (substring, main_string [, start_location]);

Funktionsargumente und Rückgabewert

Die Charindex -Funktion akzeptiert 3 Argumente:

  1. Substring - bezieht sich auf das Substring, nach dem die Funktion gesucht wird.
  2. main_string - bezieht sich auf die wörtliche Zeichenfolge, den Ausdruck oder die Spalte, aus der die angegebene Substring durchsucht werden kann.
  3. start_location - Dies gibt den Ort an, an dem nach dem angegebenen Substring gesucht werden soll. Der Startort ist eine Ganzzahl, eine große Ganzzahl oder ein Ausdruck, der zu einem Ganzzahl oder einer großen Ganzzahl führt.

Der Parameter start_location ist optional. Wenn der Wert der Start_Position nicht angegeben ist, beginnt die Suche am Anfang der Zeichenfolge.

Der Charindex gibt standardmäßig eine INT zurück. Wenn das Substring jedoch vom Typ nvchar (max), variär (max) oder varchar (max (max) ist, gibt die Funktion einen Bigint -Typ zurück.

SQL Server charIndex () Beispiele

Sehen wir uns einige Beispiele für die Verwendung der Charindex () -Funktion in SQL Server an.

Beispiel 1:

Das folgende Beispiel sucht nach einem einfachen Substring.

Wählen Sie charIndex ('SQL', 'Datenbank: SQL Server') als Index_Position;

Die obige Abfrage sollte die Startposition des Substring -Matchs zurückgeben.

Ein Beispielausgang ist wie gezeigt:

Index_position
--------------
11

HINWEIS: Die zurückgegebene Startposition ist 1 basiert und nicht 0-basierter Index.

Beispiel 2

Das folgende Beispiel zeigt, dass die Startposition 1 basiert ist.

Wählen Sie charIndex ('Linux', 'LinuxHint') als Index_position;

Die resultierende Position ist 1, wie unten gezeigt:

Index_position
--------------
1

Beispiel 3:

Die Charindex -Funktion ist unempfindlich. Dies bedeutet, dass es einem Substring übereinstimmt, auch wenn sie kein ähnliches Gehäuse teilen.

Wählen Sie charIndex ('Linux', 'LinuxHint') als Index_position;

Die Abfrage gibt immer noch die erste passende Position des durchsuchten Substrings zurück.

Index_position
--------------
1

Beispiel 4:

Angenommen, Sie möchten eine Fallempfindlichkeit mit der Charindex-Funktion durchführen? Zu diesem Zweck können Sie den Sammelstudium verwenden, um Ihre Zielkonsum zu spezifizieren.

Ein Beispiel ist wie gezeigt:

Wählen Sie charIndex ('linux', 'linuxHint' collate latein1_general_cs_as_ks_ws) als index_position;

Die obige Abfrage gibt eine Ganzzahl 0 zurück, da es kein passendes Substring gibt.

Index_position
--------------
0

Beispiel 5:

Wie bereits erwähnt, können Sie den Wert von start_position angeben, um den Beginn der Suchposition festzulegen.

Zum Beispiel legt die folgende Abfrage die Startposition als 10 fest.

Wählen Sie charIndex ('charIndex', 'SQL Server Charindex Tutorial', 10) als Index_position;

In unserem Beispiel befindet sich die erste Übereinstimmung des Substring an Position 12.

Index_position
--------------
12

Wenn wir die Startposition nach der ersten Übereinstimmung des Substring festlegen, gibt die Funktion 0 zurück, da es keine anderen Übereinstimmungsfälle gibt.

Wählen Sie charIndex ('charIndex', 'SQL Server Charindex Tutorial', 13) als Index_position;

Der Rückgabewert lautet wie:

Index_position
--------------
0

Abschluss

In diesem Artikel haben Sie verstanden, wie die Funktion charIdex () in SQL Server verwendet wird. Mit dieser Funktion können Sie nach einem Substring suchen und die Position des ersten Matching -Falls zurückgeben.

Vielen Dank für das Lesen!