Fonction SQL Server Charindex

Fonction SQL Server Charindex
Les cordes sont des éléments constitutifs fondamentaux dans le monde du développement. Même dans les bases de données, nous rencontrons des cas où nous devons effectuer des opérations de chaîne.

Une fonction SQL Server utile est la fonction Charindex (). Cette fonction renvoie la position d'index d'une sous-chaîne.

Ce guide examinera comment utiliser la fonction Charindex pour rechercher une sous-chaîne spécifiée.

Utilisation de base

Nous avons principalement utilisé la fonction Charindex pour localiser / rechercher une sous-chaîne à partir d'une position spécifique. La fonction renvoie la position de la substance si elle est trouvée et un entier 0 si elle n'est pas trouvée.

La syntaxe de la fonction est comme:

Charindex (substring, main_string [, start_location]);

Arguments de fonction et valeur de retour

La fonction Charindex accepte 3 arguments:

  1. substrat - fait référence à la sous-chaîne que la fonction recherchera.
  2. Main_string - fait référence à la chaîne littérale, à l'expression ou à la colonne à partir de laquelle rechercher la sous-chaîne spécifiée.
  3. start_location - Cela spécifie l'emplacement où rechercher la sous-chaîne spécifiée. L'emplacement de démarrage est un entier, un grand entier ou une expression qui se traduit par un entier ou un grand type entier.

Le paramètre start_location est facultatif. Si la valeur de la start_position n'est pas spécifiée, la recherche commencera au début de la chaîne.

Le Charindex renvoie un int par défaut. Cependant, si la sous-chaîne est de type nvchar (max), varbinary (max) ou varchar (max), la fonction renvoie un type bigint.

Exemples SQL Server Charindex ()

Examinons quelques exemples d'utilisation de la fonction Charindex () dans SQL Server.

Exemple 1:

L'exemple ci-dessous recherche une sous-chaîne simple.

Sélectionnez Charindex («SQL», «base de données: SQL Server») en tant qu'index_position;

La requête ci-dessus doit renvoyer la position de départ de la sous-chaîne correspondante.

Un exemple de sortie est comme indiqué:

index_position
--------------
11

Remarque: la position de départ renvoyée est à 1 index basé sur 1.

Exemple 2

L'exemple ci-dessous montre que la position de départ est basée sur 1.

SELECT Charindex ('Linux', 'LinuxHint') en tant qu'index_position;

L'emplacement résultant est 1, comme indiqué ci-dessous:

index_position
--------------
1

Exemple 3:

La fonction Charindex est insensible au cas. Cela signifie qu'il correspondra à une sous-chaîne même s'ils ne partagent pas de boîtier similaire.

SELECT Charindex ('Linux', 'LinuxHint') en tant qu'index_position;

La requête renvoie toujours la première position de correspondance de la sous-chaîne recherchée.

index_position
--------------
1

Exemple 4:

Supposons que vous souhaitiez effectuer une recherche sensible à la casse à l'aide de la fonction Charindex? Pour ce faire, vous pouvez utiliser la collecte pour spécifier votre collation cible.

Un exemple est comme indiqué:

Sélectionnez Charindex ('Linux', 'LinuxHint' Collate Latin1_General_CS_AS_KS_WS) AS INDEX_POSITION;

La requête ci-dessus renverra un entier 0 car il n'y a pas de sous-chaîne correspondante.

index_position
--------------
0

Exemple 5:

Comme nous l'avons mentionné précédemment, vous pouvez spécifier la valeur de start_position pour définir le début de la position de recherche.

Par exemple, la requête ci-dessous définit la position de départ comme 10.

SELECT Charindex ('Charindex', 'SQL Server Charindex Tutorial', 10) comme index_position;

Dans notre exemple, la première correspondance de la sous-chaîne est située à la position 12.

index_position
--------------
12

Si nous définissons la position de départ après la première correspondance de la sous-chaîne, la fonction renvoie 0 car il n'y a pas d'autres cas de correspondance.

SELECT Charindex ('Charindex', 'SQL Server Charindex Tutorial', 13) comme index_position;

La valeur de retour est comme:

index_position
--------------
0

Conclusion

Dans cet article, vous avez compris comment utiliser la fonction Charindex () dans SQL Server. Cette fonction vous permet de rechercher une sous-chaîne et de renvoyer la position du premier cas de correspondance.

Merci pour la lecture!