2010-11-08 5 views
1

Je table avec des donnéesGénérer d'ariane base de données

id  parent order tab  desc 
------------------------------------------------------------------------ 
    1  Null 1 False  abcdef 
    2  Null 2 False  efgh 
    3  1  1 False  sadad 
    4  1  2 False  aasd 
    5  3  1 True  qwer 
    6  3  1 True  asdad 
    7  5  1 False  zxzc 
    8  5  2 False  okli 

Ce tableau a des données sur toutes les pages avec des sous-sections et colonne onglet indique qu'il est onglet sur cette page, mais pas une nouvelle page

I voulez générer du XML et générer un fil d'Ariane en utilisant ces données, comment puis-je y parvenir en utilisant ces données?

Répondre

2

Pour le fil d'Ariane, vous devez utiliser un CTE récursive comme ceci:

;with Tree as 
(
    select CONVERT(varchar(100), id) as Path, id 
    from Tbl 
    where Tbl.Parent is null 

    union all 

    select Tree.Path + ' > ' + id as Path, id 
    from Tbl 

     inner join 
     Tree 
     on Tree.id = Tbl.Parent 
) 

select * from Tree 

BreadCrumb ici est juste l'identifiant de chaque ligne, mais vous pouvez changer à quelle que soit la colonne que vous vouliez (et incluez les autres colonnes que vous vouliez dans votre jeu de résultats).

Questions connexes