Je dois avouer que les ingénieurs de Microsoft ont fait un travail remarquable dans l’interrogation des données ( T-SQL ) pour la version 2005.
La première révolution, c’est la gestion de la récursivité dans les tables hiérarchiques. Un problème, hier, complexe qui impliquait l’utilisation d’un langage de programmation, la connaissance de la récursivité en .net par exemple ou l’utilisation d’une organisation intervallaire ( voir l’article remarquable de sql pro sur ce sujet : http://sqlpro.developpez.com/cours/arborescence/ )
Aujourd’hui, grace aux CTE ( Common Table Expression ), on peut gérer des arbres hierarchiques simplement dans une requête.
La deuxième révolution, c’est les fonctions de fenetrage et de classement. Un problème résolu sous oracle depuis la version 8 qui trouve enfin sa solution chez microsoft. La question qui est résolu est la suivante :
Vous avez une université composé de modules, les modules sont composés de TD, les TD sont remplis d’élèves noté par un professeur.
Pour chaque module de l’université, vous voulez connaitre le nom des 3 premiers lauréat de chaque TD. Seul les fonctions de classement ROW_NUMBER, RANK(), PARTITION BY permettent de gérer ce problème.