Maison > base de données > tutoriel mysql > Comment diviser efficacement des chaînes dans SQL Server 2008 R2 ?

Comment diviser efficacement des chaînes dans SQL Server 2008 R2 ?

Barbara Streisand
Libérer: 2025-01-25 07:06:09
original
276 Les gens l'ont consulté

La chaîne dans la segmentation efficace SQL Server 2008 R2

Question:

L'utilisation de séparateurs (comme la virgule) La chaîne de segmentation est des besoins communs dans le traitement des données. Cependant, de nombreuses solutions efficaces dans la version supérieure de SQL Server ne conviennent pas à SQL Server 2008 R2.

Solution:

Pour SQL Server 2008 R2, une méthode fiable consiste à utiliser T-SQL pour créer une fonction de définition de l'utilisateur personnalisé (UDF). L'UDF suivant appelé dbo.splitstring peut être utilisé pour diviser la chaîne en fonction des séparateurs spécifiés:

Pour utiliser cet UDF, passez simplement la chaîne pour être divisée en tant que paramètre, comme indiqué ci-dessous:
<code class="language-sql">CREATE FUNCTION dbo.splitstring (@stringToSplit VARCHAR(MAX))
RETURNS @returnList TABLE ([Name] [nvarchar](500))
AS
BEGIN
    DECLARE @name NVARCHAR(255)
    DECLARE @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

Cela renverra une table, qui contient les composants de la chaîne d'origine, qui est séparée par des virgules.
<code class="language-sql">SELECT * FROM dbo.splitstring('91,12,65,78,56,789')</code>
Copier après la connexion

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 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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal