Для 2-х уровней Хелиос написал адекватный запрос (в отличии от большинства написанного в этом топике). Если же необходимо большее количество уровней (зачастую неопределенное) впринципе можно использовать хп, но понадобится минимум 2 курсора. Преимуществ здесь будет 2:
1) Сразу возвращаем полный и нужный нам результат
2) Сохраняется план выполнения данных запросов на серваке, что, при правильном подходе,
увеличит скорость работы.