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

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

DDD
Libérer: 2024-12-16 18:24:11
original
557 Les gens l'ont consulté

How to Extract Specific Values from Delimited Strings in Transact-SQL?

Diviser des chaînes avec des délimiteurs dans Transact-SQL

Lorsque vous traitez des valeurs de chaîne complexes dans une table, il est souvent nécessaire d'extraire des informations spécifiques. Ceci peut être réalisé en utilisant des délimiteurs pour définir la structure de la chaîne.

Un tel scénario est illustré par un tableau avec une colonne contenant une chaîne comme :

Col3 = 'Clent ID = 4356hy|Client Name = B B BOB|Client Phone = 667-444-2626|Client Fax = 666-666-0151|Info = INF8888877 -MAC333330554/444400800'
Copier après la connexion

Ici, nous avons délimiteurs spécifiques séparant les paires clé-valeur : '|' pour délimiter les colonnes et '= ' (y compris les espaces) pour séparer les clés et les valeurs. L'objectif est d'extraire la valeur 'Client Name', dans ce cas 'B B BOB'.

Pour y parvenir, une combinaison de fonctions de manipulation de chaînes et d'instructions conditionnelles peut être utilisée. Une approche consiste à utiliser les fonctions CHARINDEX ou PATINDEX pour localiser la position de la valeur souhaitée dans la chaîne.

SELECT col1, col2, LTRIM(RTRIM(SUBSTRING(
    STUFF(col3, CHARINDEX('|', col3,
    PATINDEX('%|Client Name =%', col3) + 14), 1000, ''),
    PATINDEX('%|Client Name =%', col3) + 14, 1000)))
FROM Table01
Copier après la connexion

Dans cette requête, PATINDEX est utilisé pour trouver la position de départ de 'Client Name =', suivi en ajoutant 14 pour sauter cette portion. Ensuite, CHARINDEX est utilisé pour trouver la position du prochain « | ». Enfin, la fonction SUBSTRING extrait la valeur souhaitée entre ces positions, et LTRIM et RTRIM sont utilisés pour supprimer les espaces de début ou de fin.

Il convient de noter que les fonctions spécifiques utilisées pour cette tâche peuvent varier en fonction de la complexité. de la ficelle et le résultat souhaité.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal