Maison >base de données >tutoriel mysql >Comment puis-je extraire des valeurs spécifiques de chaînes délimitées dans T-SQL ?

Comment puis-je extraire des valeurs spécifiques de chaînes délimitées dans T-SQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-25 02:37:08776parcourir

How Can I Extract Specific Values from Delimited Strings in T-SQL?

Diviser des chaînes à l'aide de délimiteurs dans T-SQL

Dans T-SQL, l'extraction d'informations spécifiques à partir de chaînes longues peut être obtenue en divisant la chaîne en utilisant des caractères délimiteurs. Cette technique s'avère particulièrement utile lorsqu'il s'agit de données complexes et structurées.

Exemple de scénario

Considérons un tableau avec une colonne contenant une chaîne avec plusieurs paires clé-valeur séparées par caractères barre verticale (|) et égal (=). Le but est de récupérer uniquement la valeur spécifique associée au "Nom du client".

Solution utilisant les fonctions SUBSTRING et STUFF

Pour extraire la valeur souhaitée, nous pouvons utiliser un combinaison des fonctions SUBSTRING et STUFF :

Select col1, col2, LTRIM(RTRIM(SUBSTRING(
    STUFF(col3, CHARINDEX('|', col3,
    PATINDEX('%|Client Name =%', col3) + 14), 1000, ''),
    PATINDEX('%|Client Name =%', col3) + 14, 1000))) col3
from Table01

Répartition des Solution

La requête utilise les étapes suivantes :

  1. Fonction STUFF : Ajoute un caractère espace à l'emplacement spécifié pour créer un délimiteur unique pour le paire clé-valeur contenant « Nom du client ».
  2. Fonction CHARINDEX : Trouve la position du Caractère vertical qui précède "Nom du client".
  3. Fonction PATINDEX : Identifie la position du délimiteur de valeur-clé "Nom du client".
  4. Fonction SUBSTRING : Extrait la sous-chaîne contenant la valeur "Nom du client".
  5. LTRIM et fonctions RTRIM : Supprimez tout espace de début ou de fin de la valeur extraite.

Considérations relatives aux performances

Bien que CharIndex et PatIndex puissent être utilisés pour identification du délimiteur, les tests de performance indiquent qu'ils donnent des résultats similaires. Le choix entre eux est donc souvent préférentiel.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn