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:
POSITIONComme 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ÉLECTIONNERLa requête doit renvoyer la position comme indiqué:
POSITIONSpé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:
POSITIONDans 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');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');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');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.