[pgsql-jp: 35812] Re: 階層問い合わせについて
新井 哲也
arai.tetsuya @ lab.ntt.co.jp
2005年 8月 9日 (火) 15:09:26 JST
新井と申します。
>ここで、東京を頭にした階層表示で
>SELECT * FROM connectby('sample' , 'SID' , '親SID' , 'SID' , '1');
>としても
>「
>SQL実行中に以下のエラーが発生しました。
>ERROR: column "sample" does not exist
>」
>
>というエラーが発生してしまいます。
connectbyの4番目のパラメータは列名を指定するのではなくてスタート行の
親キーの値を指定します。
また、構文もAS句を省略すると上記のようなエラーが発生します。
参考までにREADMEの内容を基に私の環境(PostgreSQL8.0.3)で試した結果を
示します。
---
sample=# select * from sample;
sid | psid | name
-----+------+-----------
1 | | Tokyo
2 | | Kanagawa
3 | 1 | Shinagawa
4 | 1 | Minato
5 | 1 | Shibuya
6 | 2 | Yokohama
7 | 2 | Kawasaki
8 | 3 | Osaki
9 | 3 | Ooi
10 | 4 | Akasaka
(10 rows)
sample=# SELECT * FROM connectby('sample' , 'SID' , 'pSID' , '1' , 1, '~')
as t(SID int,pSID int,level int,branch text);
sid | psid | level | branch
-----+------+-------+--------
1 | | 0 | 1
3 | 1 | 1 | 1~3
4 | 1 | 1 | 1~4
5 | 1 | 1 | 1~5
(4 rows)
sample=# SELECT * FROM connectby('sample' , 'SID' , 'pSID' , '2' , 1, '~')
as t(SID int,pSID int,level int,branch text);
sid | psid | level | branch
-----+------+-------+--------
2 | | 0 | 2
6 | 2 | 1 | 2~6
7 | 2 | 1 | 2~7
(3 rows)
==============================================
Tetsuya Arai
NTT Cyber Space Laboratories
Nippon Telegraph and Telephone Corporation.
E-mail: arai.tetsuya @ lab.ntt.co.jp
==============================================
pgsql-jp メーリングリストの案内