


Comment puis-je diviser les valeurs délimitées d'une colonne SQL en plusieurs lignes ?
Jan 04, 2025 am 11:43 AM<h2>Diviser les valeurs délimitées dans une colonne SQL en plusieurs lignes</h2>
Les délimiteurs dans les colonnes SQL peuvent créer des défis lorsque vous tentez de diviser des valeurs en plusieurs rangées. Cet article fournit des solutions pour les versions récentes et anciennes de SQL Server.
<h3>SQL Server 2016 et plus récent</h3>
SQL Server 2016 introduit la fonction STRING_SPLIT, permettant de faciliter séparation des valeurs en utilisant ce qui suit syntaxe :
SELECT s.[message-id], f.value FROM dbo.SourceData AS s CROSS APPLY STRING_SPLIT(s.[recipient-address], ';') as f;
<h3>Versions SQL Server antérieures à 2016</h3>
Pour les anciennes versions de SQL Server, créez une fonction fractionnée telle que :
CREATE FUNCTION dbo.SplitStrings ( @List NVARCHAR(MAX), @Delimiter NVARCHAR(255) ) RETURNS TABLE AS RETURN (SELECT Number = ROW_NUMBER() OVER (ORDER BY Number), Item FROM (SELECT Number, Item = LTRIM(RTRIM(SUBSTRING(@List, Number, CHARINDEX(@Delimiter, @List + @Delimiter, Number) - Number))) FROM (SELECT ROW_NUMBER() OVER (ORDER BY s1.[object_id]) FROM sys.all_objects AS s1 CROSS APPLY sys.all_objects) AS n(Number) WHERE Number <= CONVERT(INT, LEN(@List)) AND SUBSTRING(@Delimiter + @List, Number, 1) = @Delimiter ) AS y); GO
Une fois la fonction split créée, vous pouvez l'utiliser pour extraire valeurs :
SELECT s.[message-id], f.Item FROM dbo.SourceData AS s CROSS APPLY dbo.SplitStrings(s.[recipient-address], ';') as f;
<h3>Astuce :</h3>
Pour un stockage et un référencement optimaux, évitez d'utiliser des tirets dans les noms de colonnes, car ils nécessitent de les mettre entre crochets.
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?
