Mit Yukon sind endlich hierarchische Abfragen möglich. Möglich wird dies durch rekursive Queries, ein gelinde ausgedrückt fantastisches Feature. Während man beim SQL-Server 2000 noch vergeblich nach einer eingebauten Lösung a la connect by prior start with bei Oracle sucht und dies über stored procedures lästig nachbauen muß, bietet Yukon mit rekursiven Queries ein Handwerkszeug, das sich gewaschen hat. So läßt sich mit with ( .. ) ein Tabellenausdruck definieren, der über einen Join mit sich selbst rekursive Abfragen ermöglicht und so mit einem einfachen Query ermöglicht, was sich vormals nur über Prozeduren implementieren ließ.
Ein Beispiel mit der employees-Tabelle der Northwind-Datenbank:
WITH members(id,name,title,reportsto,depth) AS
(
SELECT employeeid id,lastname name,title,reportsto,0
FROM employees WHERE reportsto IS NULL
UNION ALL
SELECT e.employeeid,e.lastname,e.title,e.reportsto,depth+1
FROM employees e
JOIN members m
ON e.reportsto=m.id
)
SELECT * FROM members;