Maison >base de données >tutoriel mysql >Comment diviser des valeurs séparées par des virgules dans SQL Server 2012 sans STRING_SPLIT ?

Comment diviser des valeurs séparées par des virgules dans SQL Server 2012 sans STRING_SPLIT ?

DDD
DDDoriginal
2025-01-11 06:30:42245parcourir

How to Split Comma-Separated Values in SQL Server 2012 without STRING_SPLIT?

Alternatives à STRING_SPLIT dans SQL Server 2012

La fonction STRING_SPLIT n'est pas disponible dans SQL Server 2012 en raison de restrictions de niveau de compatibilité. Bien que la modification du niveau de compatibilité ne soit pas possible, il existe une alternative au fractionnement des valeurs séparées par des virgules.

Utilisation des méthodes XML et CROSS APPLY

Les méthodes XML et CROSS APPLY peuvent être utilisées pour obtenir les résultats souhaités. Voici comment cela fonctionne :

<code class="language-sql">SELECT Split.a.value('.', 'NVARCHAR(MAX)') AS DATA
FROM
(
    SELECT CAST('<X>'+REPLACE(@ID, ',', '</X><X>')+'</X>' AS XML) AS String
) AS A
CROSS APPLY String.nodes('/X') AS Split(a);</code>

Exemple

Considérons l'exemple suivant, où le paramètre @ID contient des valeurs séparées par des virgules :

<code class="language-sql">DECLARE @ID NVARCHAR(300) = '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20';</code>

Le résultat de la requête ci-dessus sera :

<code>DATA
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20</code>

Résumé

Bien que STRING_SPLIT ne soit pas disponible dans SQL Server 2012, la méthode XML combinée à CROSS APPLY fournit une alternative viable pour diviser les valeurs séparées par des virgules. Cette approche est particulièrement utile lorsque les restrictions de niveau de compatibilité empêchent les modifications de la base de données.

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