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?
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>
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>
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!