トップ回答者
SQLでツリー構造を構築するのに適切な順番で出力するクエリ

質問
回答
-
テキストの場合、「│├└」の3種類を使うことになるんでしょうが、そこは手作業と同じアルゴリズムを書くことになるかと。
とりあえずWITH を使うのかな。MSDN Libraryは年々サンプルが消えていくので英語版の方のWITH も。
# あほらしいからサンプル復活させてよ…。この手の全体としてバグってるという指摘は言っても聞かないからなぁ…。
WITHで深さを求めて、深さ-1の数だけ「│」。あとはleafの最後が「└」でそれ以外が「├」かな。
XMLのDOMの場合、XMLのことはXMLに任せた方がいいと思います。SQLはフラットに出力しておいてXSLTで変換してしまう。
ちなみにこういったデータ構造を表すためにSQL Server 2008からhierarchyid が用意されています。- 回答としてマーク 和和和 2009年10月13日 2:36
-
hierarchyid よさげですね。ありがとうございます。
階層の深さが分かっているのであれば、その分だけ結合しIDでソートすればいけるかと思いますが、
階層の深さが未知の場合、 自己結合だけでは難しいと思います。
[カーソル|一時テーブル]を使うのが良いのではないでしょうか?
Toshiya TSURU
http://www.google.com/profiles/turutosiya- 回答としてマーク 和和和 2009年10月13日 2:36
すべての返信
-
テキストの場合、「│├└」の3種類を使うことになるんでしょうが、そこは手作業と同じアルゴリズムを書くことになるかと。
とりあえずWITH を使うのかな。MSDN Libraryは年々サンプルが消えていくので英語版の方のWITH も。
# あほらしいからサンプル復活させてよ…。この手の全体としてバグってるという指摘は言っても聞かないからなぁ…。
WITHで深さを求めて、深さ-1の数だけ「│」。あとはleafの最後が「└」でそれ以外が「├」かな。
XMLのDOMの場合、XMLのことはXMLに任せた方がいいと思います。SQLはフラットに出力しておいてXSLTで変換してしまう。
ちなみにこういったデータ構造を表すためにSQL Server 2008からhierarchyid が用意されています。- 回答としてマーク 和和和 2009年10月13日 2:36
-
hierarchyid よさげですね。ありがとうございます。
階層の深さが分かっているのであれば、その分だけ結合しIDでソートすればいけるかと思いますが、
階層の深さが未知の場合、 自己結合だけでは難しいと思います。
[カーソル|一時テーブル]を使うのが良いのではないでしょうか?
Toshiya TSURU
http://www.google.com/profiles/turutosiya- 回答としてマーク 和和和 2009年10月13日 2:36