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);
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';
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!