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 ?

Comment puis-je diviser des chaînes séparées par des virgules dans T-SQL 2008 R2 ?

DDD
DDDoriginal
2025-01-25 07:02:07634parcourir

How Can I Split Comma-Separated Strings in 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!

Déclaration:
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