Basé sur le tableau suivantsorte récursive de requête T-SQL
ID Path
---------------------------------------
1 \\Root
2 \\Root\Node0
3 \\Root\Node0\Node1
4 \\Root\Node0\Node2
5 \\Root\Node3
6 \\Root\Node3\Node4
7 \\Root\Node5
...
N \\Root\Node5\Node6\Node7\Node8\Node9\Node10
ainsi de suite ...
Il y a environ 1000 lignes dans ce tableau. Je veux afficher des nœuds individuels dans des colonnes séparées. Nombre maximum de colonnes à afficher 5 (c'est-à-dire jusqu'à 5 niveaux de profondeur). Ainsi, la sortie regardera comme ci-dessous
ID Path Level 0 Level 1 Level 2 Level 3 Level 4 Level 5
----------------------------------------------------------------------------------------
1 \\Root Root Null Null Null Null Null
2 \\Root\Node0 Root Node 0 Null Null Null Null
3 \\Root\Node0\Node1 Root Node 0 Node 1 Null Null Null
4 \\Root\Node0\Node2 Root Node 0 Node 2 Null Null Null
5 \\Root\Node3 Root Node 3 Null Null Null Null
6 \\Root\Node3\Node4 Root Node 3 Node 4 Null Null Null
7 \\Root\Node5 Root Node 5 Null Null Null Null
...
N (see in above table) Root Node 5 Node 6 Node 7 Node 8 Node 9
La seule façon que je peux penser est d'ouvrir un curseur, boucle à travers chaque ligne et effectuer une scission de chaîne, juste aller chercher les 5 premiers noeuds, puis insérer dans une température table.
Veuillez nous suggérer.
Merci
SQL Server 2008 a hierarchyid (http://technet.microsoft.com/en-us/library/bb677173.aspx). Totalement recommandé Il supporte des méthodes utiles comme GetLevel et GetAncestor qui peuvent être utilisées ensemble pour résoudre ce problème. Accordé, ce serait tricher comme une réponse ici car il change le schéma de la table d'entrée :-) –