Charindex SQL

Charindex SQL
Les opérations de chaîne et de chaîne sont des fonctionnalités universelles dans toutes les bases de données. Par conséquent, il est presque impossible d'avoir une base de données non triviale sans utiliser de chaîne et d'informations de texte.

Cet article discutera d'une opération de chaîne standard: utiliser l'héritage et SQL standard pour trouver une sous-chaîne dans une autre chaîne.

Héritage SQL

Nous pouvons trouver la position d'une sous-chaîne dans Legacy SQL en utilisant la fonction instr ().

La fonction prend une chaîne et une sous-chaîne comme arguments. Il renvoie ensuite une position d'indice basée sur une seule base dénotant la première occurrence de la sous-chaîne.

Si la sous-chaîne n'est pas trouvée, la fonction renvoie 0.

La syntaxe de la fonction est telle qu'elles sont exprimées ci-dessous:

Instant ('string', 'substring');

Nous pouvons utiliser cette fonction comme indiqué ci-dessous:

Sélectionnez instant ('LinuxHint', 'Hint') comme position;

Il doit revenir:

POSITION
6

Comme mentionné, l'indice de position commence à partir de 1 et non 0.

SQL standard

Dans SQL standard, nous utilisons la fonction STRPOS () pour obtenir l'emplacement d'une sous-chaîne. La fonction prend deux arguments: la chaîne et le sous-trait.

Il renvoie ensuite une position basée sur un index de la première occurrence de la sous-chaîne. Si la sous-chaîne n'est pas trouvée, la fonction renvoie 0.

La syntaxe est comme indiqué ci-dessous:

StrPos (String, substring);

L'exemple d'utilisation de cette fonction est comme indiqué ci-dessous:

SÉLECTIONNER
StrPos («Linuxhint», «indice») comme position;

La requête doit renvoyer la position comme indiqué:

POSITION
6

Spécifique en moteur de base de données

Divers moteurs de base de données fournissent des fonctions différentes pour déterminer la position d'une sous-chaîne. Bien que la fonctionnalité reste la même, la dénomination de la fonction est différente sur divers moteurs de base de données.

PostgreSQL & MySQL

PostgreSQL et MySQL utilisent la fonction position () pour obtenir l'emplacement d'une sous-chaîne. Un exemple d'utilisation est comme indiqué:

Sélectionner la position ('indice' dans 'LinuxHint') en position;

Notez que la fonction utilise l'opérateur in pour spécifier quelle sous-chaîne à rechercher. Cela devrait revenir:

POSITION
----------
6
(1 ligne)

Dans MySQL, vous pouvez également utiliser la fonction Locate () pour trouver la position d'une sous-chaîne. Un exemple d'utilisation est illustré ci-dessous:

mysql> sélectionner localiser ('hint', 'linuxhint');
-> 6

MS SQL Server

Dans SQL Server, nous utilisons la fonction Charindex () pour déterminer la position d'une sous-chaîne. Un exemple d'utilisation est illustré ci-dessous:

Sélectionnez Charindex ('Hint', 'LinuxHint');
-> 6

IBM DB2

Dans DB2, vous pouvez trouver la position de sous-chaîne à l'aide de la fonction posstr (). Un exemple est indiqué ci-dessous:

Sélectionnez posstr ('hint', 'LinuxHint');
-> 6

Conclusion

Dans cet article, nous avons exploré diverses méthodes et techniques pour localiser la position d'une sous-chaîne en héritage et SQL standard. Nous avons également discuté de chaque variation des méthodes pour divers moteurs de base de données.

Pour en savoir plus sur les SQL standard et hérités, restez à l'écoute pour les articles LinuxHint.