階層構造をSQLで取得するときはWith句を使えばいいんだけど、
PostgreSQLは次の8.4からしかWith句に対応していない。
Oracleにあるのと同じconnectby関数が利用できる。
だけどデフォルトではその関数は入っていない。
%POSTGR_HOME%\share\contrib\tablefunc.sqlを適用するとconnectby関数を使用できるようになる。
psql -Uユーザー名 -W < tablefunc.sql
ログ。
SET CREATE FUNCTION CREATE FUNCTION CREATE TYPE CREATE TYPE CREATE TYPE CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION
(追記)こんなSQLになる。
SELECT * FROM connectby( 'tableName', 'keyColumnName', 'parentColumnName', rootKeyValue, 0 ) AS t( key VARCHAR, parentKey VARCHAR, level INT )