Как отобразить потомков (не только прямых) по условию, где на входе ID родителя

Существует таблица вида:

Таблица MS SQL

Для наглядности:

Дерево

Есть необходимость вывести потомков для родителя (по id родителя). Т.е. в результате должны участвовать только записи из результата:

SELECT id, name, parent_id
FROM dbo.test2
WHERE id NOT IN (SELECT parent_id FROM dbo.test2)

Но как мне выводить потомков для конкретного родителя (не обязательно прямого) по id родителя (это, к сожалению, обязательное условие), т.е. если в условие поступает WHERE id = 1 (для "Задача1"), то отобразить записи

стена
забор

если в условие поступает WHERE id = 2 (для "покраска"), то так же отобразить записи

стена
забор

если, к примеру, в условие поступает WHERE id = 6 (для "монтаж"), то отобразить

люстра
гардина
проводка

Ответы (1 шт):

Автор решения: t0lik

Смотрите в сторону рекурсивные запросов, например как тут Understanding SQL Server recursive CTE

→ Ссылка