


Comment diviser des chaînes délimitées par des virgules dans T-SQL ?
Jan 23, 2025 am 08:36 AMAnalyser efficacement les chaînes délimitées par des virgules dans T-SQL
T-SQL ne dispose pas d'une fonction de partage intégrée, contrairement à de nombreux autres langages de programmation. Cependant, plusieurs techniques permettent de diviser efficacement les chaînes.
Approche 1 : tirer parti de l'analyse XML
Cette approche utilise les capacités d'analyse inhérentes à XML pour séparer les valeurs. Le code T-SQL suivant illustre ceci :
DECLARE @xml xml, @str varchar(100), @delimiter varchar(10) SET @str = '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15' SET @delimiter = ',' SET @xml = cast(('<X>'+replace(@str, @delimiter, '</X><X>')+'</X>') as xml) SELECT C.value('.', 'varchar(10)') as value FROM @xml.nodes('X') as X(C)
Approche 2 : CTE et CHARINDEX pour le fractionnement récursif
Cette méthode utilise une expression de table commune (CTE) et la fonction CHARINDEX
pour le fractionnement récursif de chaînes :
DECLARE @str varchar(100), @delimiter varchar(10) SET @str = '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15' SET @delimiter = ',' ;WITH cte AS ( SELECT 0 a, 1 b UNION ALL SELECT b, CHARINDEX(@delimiter, @str, b) + LEN(@delimiter) FROM CTE WHERE b > a ) SELECT SUBSTRING(@str, a, CASE WHEN b > LEN(@delimiter) THEN b - a - LEN(@delimiter) ELSE LEN(@str) - a + 1 END) value FROM cte WHERE a > 0
Exploration plus approfondie
Pour des méthodes supplémentaires et une discussion plus large sur le fractionnement des chaînes délimitées par des virgules dans T-SQL, consultez cette ressource utile :
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)?

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?
