[pgsql-jp: 30629] Re: JOINをして複数行複数列を返すファンクション

T.Suzuki t_suzuki @ kenwood-eng.co.jp
2003年 7月 29日 (火) 15:31:39 JST


鈴木@KEGと申します。

 西野さん wrote:
> postgresqlのファンクションで複数行複数列を返すものを作成したいのですが、
> LEFT JOINなどをして複数のテーブルを含めたファンクションの書き方がわかりま
せん。
> RETURN句にSETOFでテーブルを指定するのには1テーブルのみなのでしょうか?

CREATE TYPE を使用して、戻り値のレコード型を定義し、
定義しておいたTYPEを、SETOFにて指定すると可能だと思います。
※すいません。Pl/pgSQLでしか試してません。

> (例)
> SELECT test1.name,test1.address,test2.comment FROM test1 LEFT JOIN test2
ON test1.id = test2.id
> WHERE test1.id = 1

CREATE TYPE testReturnType AS (
  name       text,
  address    text,
  comment  text
);

#Web+DBのVol13. ストアードプロシージャのススメが参考になります。
 -----------------------------------------
      鈴木 徹 (SUZUKI Toru)
      KENWOOD ENGINEERING CORPORATION
      E-mail:t_suzuki @ kenwood-eng.co.jp
 -----------------------------------------




pgsql-jp メーリングリストの案内