Articles

Fonction PATIN SQL Server

Résumé : dans ce tutoriel, vous avez appris à utiliser la fonction SQL Server PATINDEX() pour trouver la position d’un motif dans une chaîne.

Aperçu de SQL Server PATINDEX()

La fonction PATINDEX() renvoie la position de la première occurrence d’un motif dans une chaîne. La syntaxe de la fonction PATINDEX() est la suivante :

PATINDEX ( '%pattern%' , input_string )
Code language: SQL (Structured Query Language) (sql)

La fonction PATINDEX() accepte deux arguments:

  • pattern est une expression de caractère à trouver. Il peut contenir des caractères génériques tels que % et '_' dans le modèle. Les significations des caractères génériques sont les mêmes qu’avec l’opérateur LIKE.
  • input_string est une chaîne de caractères dans laquelle le motif à rechercher.

Le PATINDEX() renvoie un entier qui spécifie la position de la première occurrence du pattern dans le input_string, ou zéro du motif introuvable. La fonction PATINDEX() retournera NULL si pattern ou input_string est NULL.

Notez que PATINDEX() recherche le motif en fonction du classement de l’entrée. Si vous souhaitez utiliser un classement spécifique, vous pouvez utiliser explicitement la clause COLLATE.

Exemples de fonctions SQL Server PATINDEX()

Prenons quelques exemples d’utilisation de la fonction PATINDEX().

A)Exemple simple de SQL Server PATINDEX()

Cet exemple renvoie la position de départ de la sous-chaîne 'ern'dans la chaîne 'SQL Pattern Index':

SELECT PATINDEX('%ern%', 'SQL Pattern Index') position;
Code language: SQL (Structured Query Language) (sql)

Voici la sortie:

position-----------9(1 row affected)

B) Utilisation de SQL Server PATINDEX() avec plusieurs caractères génériques exemple

Cet exemple utilise des caractères génériques % et _ pour trouver la position à laquelle le motif 'f', suivi de deux caractères quelconques et 'ction' commence dans la chaîne 'SQL Server String Function':

SELECT PATINDEX('%f__ction%', 'SQL Server String Function') position;
Code language: SQL (Structured Query Language) (sql)

La sortie est la suivante:

Position-----------19(1 row affected)

C) Utilisation de la fonction SQL Server PATINDEX() avec exemple de colonne de table

Cet exemple trouve la position de la première occurrence du motif 2018 dans les valeurs de la colonne product_name dans la colonne production.products table de l’exemple de base de données.

SELECT product_name, PATINDEX('%2018%', product_name) positionFROM production.productsWHERE product_name LIKE '%2018%'ORDER BY product_name;
Code language: SQL (Structured Query Language) (sql)

L’image suivante montre la sortie partielle:

Exemple de fonction de PATIN SQL Server

Dans ce tutoriel, vous avez appris à utiliser la fonction SQL Server PATINDEX() pour trouver la position de la première occurrence de un motif dans une chaîne.