Maison > base de données > tutoriel mysql > Comment puis-je diviser efficacement les chaînes dédiées à des virgules dans SQL Server 2008 R2?

Comment puis-je diviser efficacement les chaînes dédiées à des virgules dans SQL Server 2008 R2?

DDD
Libérer: 2025-01-25 06:56:08
original
508 Les gens l'ont consulté

How Can I Efficiently Split Comma-Delimited Strings in SQL Server 2008 R2?

T-SQL Straction de chaîne dans SQL Server 2008 R2

SQL Server 2008 R2 manque de fonctionnalités de division de chaîne intégrées, ce qui rend le traitement de chaîne séparée par les virgules. Cet article montre une solution robuste utilisant une fonction personnalisée.

Création d'une fonction divisée personnalisée

La fonction dbo.splitstring suivante divise efficacement les chaînes dédiées à la virgule:

<code class="language-sql">CREATE FUNCTION dbo.splitstring (@stringToSplit VARCHAR(MAX))
RETURNS @returnList TABLE ([Name] [nvarchar](500))
AS
BEGIN
    DECLARE @name NVARCHAR(255), @pos INT;
    WHILE CHARINDEX(',', @stringToSplit) > 0
    BEGIN
        SELECT @pos = CHARINDEX(',', @stringToSplit);
        SELECT @name = SUBSTRING(@stringToSplit, 1, @pos - 1);
        INSERT INTO @returnList SELECT @name;
        SELECT @stringToSplit = SUBSTRING(@stringToSplit, @pos + 1, LEN(@stringToSplit) - @pos);
    END
    INSERT INTO @returnList SELECT @stringToSplit;
    RETURN;
END;</code>
Copier après la connexion

Utilisation de la fonction

Pour utiliser la fonction, passez simplement la chaîne pour être divisée en tant que paramètre:

<code class="language-sql">SELECT * FROM dbo.splitstring('91,12,65,78,56,789');</code>
Copier après la connexion

Cela produira une table avec chaque valeur séparée dans une ligne dans une ligne séparée:

| Nom | | --- | --- | | 91 | | 12 | | 65 | | 78 | | 56 | | 789 |

Cette fonction personnalisée fournit une méthode fiable pour gérer les chaînes dédiées aux virgules dans les limites de SQL Server 2008 R2.

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