回答編集履歴
3
推敲
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
「特定階層の名称」
|
1
|
+
「特定階層の名称」、「階層レベル2の名称」は階層の上限を決めてその階層数分の自己結合を行う必要があり、階層の上限を設定で行うような場合には、動的SQLが必要になります。
|
2
2
|
|
3
3
|
こういった階層構造には**再帰**を使用すると便利です。
|
4
4
|
|
2
訂正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
「特定階層の名称」については1階層分の自己結合で何とかなりますが、「階層レベル2の名称」は階層の上限を決めてその階層数分の自己結合を行う必要があり、階層の上限を設定で行うような場合には、動的SQLが必要になります。
|
1
|
+
「特定階層の名称」~~については1階層分の自己結合で何とかなりますが~~、「階層レベル2の名称」は階層の上限を決めてその階層数分の自己結合を行う必要があり、階層の上限を設定で行うような場合には、動的SQLが必要になります。
|
2
2
|
|
3
3
|
こういった階層構造には**再帰**を使用すると便利です。
|
4
4
|
|
1
修正
answer
CHANGED
@@ -14,8 +14,8 @@
|
|
14
14
|
from tbl where 親ID is null
|
15
15
|
union all
|
16
16
|
select vtbl.階層レベル+1
|
17
|
-
, case when vtbl.フラグ=1 then vtbl.名称 end
|
17
|
+
, case when vtbl.フラグ=1 then vtbl.名称 else vtbl.特定階層の名称 end
|
18
|
-
, case when vtbl.階層レベル=1 then tbl.名称 else 階層レベル2の名称 end
|
18
|
+
, case when vtbl.階層レベル=1 then tbl.名称 else vtbl.階層レベル2の名称 end
|
19
19
|
, tbl.id, tbl.名称, tbl.親ID, tbl.フラグ
|
20
20
|
from vtbl inner join tbl
|
21
21
|
on vtbl.id=tbl.親ID
|