OVH Cloud OVH Cloud

requête sur une hiérarchie dans SQl Serveur ?

3 réponses
Avatar
Fabrice BILLARD
Bonjour,

Existe-il un moyen de faire une requête sur une hiérarchie comme oracle sait
le faire (select ... from ... start with ... connect by ... prior ...).

Merci d'avance

3 réponses

Avatar
B.M
Probablement vous faites reference a une mecanique de recursivité qui est
supporté seulement par la prochaine version de SQL server qui sortira au
debut de novembre.
Si vous connaissez a l'avance le nombre de niveau de hierarchie vous pouvez
"joinner" la meme table autant de fois que votre max hierarchie, sinon on
utilisant un cursor et une table temporarire


"Fabrice BILLARD" wrote in
message news:
Bonjour,

Existe-il un moyen de faire une requête sur une hiérarchie comme oracle
sait
le faire (select ... from ... start with ... connect by ... prior ...).

Merci d'avance




Avatar
Fred BROUARD
Bonjour

Deux techniques sont disponibles :

1)
Dans SLQ Server 2005, le CTE permet des requêtes récursives à la norme SQL:1999.
Lire l'article que j'ai écrit en anglais sur le sujet :
http://www.sqlservercentral.com/columnists/fBROUARD/recursivequeriesinsql1999andsqlserver2005.asp
et qui va paraître dans SQL Server Magazine en français

Voir aussi :
http://sqlpro.developpez.com/SQL_Server_2K5/N1.php
§ 1.5 Écriture des expressions de table

2)
Sinon, pour SQL Server 2000, modélisez votre arbre sous forme intervallaire. Il
n'y aura plus de problème d'écriture de requête récursive et c'est même plus
performant que le CTE !
A lire : http://sqlpro.developpez.com/cours/arborescence/


Fabrice BILLARD a écrit:
Bonjour,

Existe-il un moyen de faire une requête sur une hiérarchie comme oracle sait
le faire (select ... from ... start with ... connect by ... prior ...).



start with ... connect by ... prior... n'existe pas en SQL. C'est propre à
Oracle et très limité !


Merci d'avance





A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Avatar
Fred
Dans le message:,
Fabrice BILLARD écrit:
Bonjour,



Bonjour,

Existe-il un moyen de faire une requête sur une hiérarchie comme
oracle sait le faire



Regarde dans l'aide Transact SQL à la rubrique CREATE FUNCTION
Tu as un exemple, à la fin, qui fait (à peu de choses près) ce que tu
veux.

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT