Maison >base de données >tutoriel mysql >Comment puis-je diviser des chaînes séparées par des virgules dans T-SQL 2008 R2 ?
Chaîne divisée dans T-SQL 2008 R2
Dans SQL Server 2008 R2, les utilisateurs sont confrontés à des difficultés lorsqu'ils tentent de diviser des chaînes délimitées par des virgules. Malgré la recherche dans StackOverflow, il semble que les solutions disponibles ne soient pas compatibles avec cette version.
Solution
Pour diviser efficacement les chaînes dans T-SQL 2008 R2, les fonctions suivantes définies par l'utilisateur peuvent être utilisées :
<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>
Exemples d'utilisation
Pour utiliser cette fonction, exécutez la requête suivante :
<code class="language-sql">SELECT * FROM dbo.splitstring('91,12,65,78,56,789')</code>
Cette requête renverra une table de résultats contenant des éléments de chaîne individuels séparés par des virgules.
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!