parcours d'un arbre en sql
Bonjour, j'ai fait, sans le savoir au depart, une table qui est la representation d'un arbre.
En fait il s'agit de stocker la structure d'un menu
Elle a cette tete :
id_element : id dans la table
element_name : le nom de mon élement de menu
element_level : son niveau (pour determiner son type d'affichage et si par exemple c'est un lien)
element_father : si jamais c'est un fil de.
alors par exemple pour :
MENU
SOUS-MENU
Groupe Liens 1
-lien 1
-lien 2
Groupe Liens 2
-lien3
j'ai 1 / MENU / 0 / 0
2 / SOUS-MENU / 10 / 1
3 / groupe1 / 20 / 2
4 / groupe2 / 20 / 2
5 / lien 1 / 30 / 3
6 / lien 2 / 30 / 3
7 / lien3 / 30 / 4
8 / MENU 2 / 0 / 0
et j'aimerai construire une requete qui me trie cet arbre n-aire en partant des elements qui n'ont pas de pères - father = 0 - (ou si c'est plus simple des elements de niveau 0) puis les fils, puis les fils des fils...
j'ai pensé à un produit en croix des tables, mais ce n'est pas souple du tout, car si jamais je rajoute un niveau là dedans, il faut que je remodifie ma requete,
et j'ai trouvé un truc sur internet, en CONNECT BY ... = PRIOR ... START WITH .... mais SQL Server sur lequel je travaille actuellement n'a pas l'air d'apprécier cette syntaxe. si vous avez deux trois idées...
merci d'avance.