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
Libérer: 2025-01-11 06:30:42
original
244 Les gens l'ont consulté

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 :

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);
Copier après la connexion

Exemple

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

DECLARE @ID NVARCHAR(300) = '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20';
Copier après la connexion

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>
Copier après la connexion

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