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:
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_positionRemarque: 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_positionExemple 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_positionExemple 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_positionExemple 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_positionSi 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_positionConclusion
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!