Выберите оператор для возврата родительских и бесконечных детей

Дайте структуру таблицы, как что-то вроде:

ID      ParentID      Name
1       NULL          A root
2       NULL          Another root
3       1             Child of 1
4       3                Grandchild of 1
5       4                   Great grandchild of 1
6       1             Child of 1
7       NULL          Another root
8       7             Child of 6

Я ищу элегантное (если возможно) решение для одного оператора / функции Sql, который бы возвращал все данные в таблице, когдаID = 1

Так что мой результат будет выглядеть примерно так:

ID      ParentID      Name
1       NULL          A root
3       1             Child of 1
4       3                Grandchild of 1
5       4                   Great grandchild of 1
6       1             Child of 1

Я видел похожие вопросы по SO, хотя по большей части они, похоже, смотрят только на определенное количество уровней.

Эта структура, в конечном счете, может быть безграничной - папка с детьми, со многими другими детьми

Это возможно? Если так, как бы я это сделал?