このテーブルには自分の親となるidを持つ列としてparent列があります。 parent列にNULLが設定されている場合は、その列が一番上位にあるということをさすよう考えます。 以下のようにSQLを記述するとSQLが再帰実行されて、階層としてデータを取得することができます。 WITH CTE(id, name, parent, lv) AS ( SELECT id, name, parent, 1 FROM rcTest WHERE parent is null UNION ALL SELECT rcTest.id, rcTest.name + '/' + CTE.name, rcTest.parent, lv + 1 FROM rcTest INNER JOIN CTE ON rcTest.parent = CTE.id ) SELECT * FROM CTE; このSQLを実行すると以