SQL - C’est quoi INSTR() sur BigQuery?

SQL - C’est quoi INSTR() sur BigQuery?

Date de sortie
December 3, 2024
Auteur
Bertrand Fabre

💡 L’astuce data : c’est quoi INSTR() ?

“Tu connais des fonctions SQL pour rechercher simplement une chaîne de caractères dans un texte ? Si tu peux éviter de me faire utiliser des regex ce serait top 😅”.

Il existe plusieurs manière en SQL de recherche une sous-chaîne (et non pas du chouchen) de caractères dans une autre chaîne de caractères.

Aujourd’hui, nous allons voir ensemble la fonction INSTR().

Elle permet de retourner la position de la sous-chaîne de caractères dans la chaîne de caractères principale.

Syntaxe

INSTR(chaîne_principale, chouchensous_chaîne, position_de_départ, occurence_spécifique)
  • chaîne_principale : la chaîne de caractères de référence ;
  • sous_chaîne : le texte recherché ;
  • (facultatif) position_de_départ : on lui indique à partir de quelle position dans la chaîne_principale il doit commencer la recherche ;
  • (facultatif) occurence_spécifique : on précise l’occurrence spécifique dont on veut afficher la position car il peut y avoir plusieurs fois la sous_chaîne dans le texte.

Et comme un exemple est toujours plus parlant.

SELECT INSTR('chouchen', 'sous_chaîne'); -> 0

0 est retourné car la sous_chaîne n’a pas été trouvé.

SELECT INSTR('chouchen', 'ch'); -> 1

La fonction a trouvé la première occurrence dès la première position.

SELECT INSTR('chouchen', 'cH'); -> 0

INSTR() est sensible à la casse, avec un H majuscule il ne trouve plus la sous-chaîne.

SELECT INSTR('chouchen', 'ch', 2); -> 5

Il lui a dit de ne commencer ses recherche qu’à partir de la position 2. Il a donc trouvé une deuxième occurrence en position 5.

SELECT INSTR('chouchen', 'ch', 1, 2); -> 5

Pour finir, on lui a dit de commencer ses recherches à partir de la première position mais de n’afficher la position que de la deuxième occurrence.

Merci de votre lecture !