[pgsql-jp: 26512] Re: 空きID の複数検索
K.Nakamura
kazz @ emsg.jp
2002年 6月 27日 (木) 18:39:29 JST
杉田様
中村です。お世話になります。
ご回答ありがとうございます。関数ですか。
こちらも勉強してみます。もし、理解不能な時はどうぞ
よろしくお願いいたします。
sugita @ sra.co.jp さんは書きました:
> 杉田です。
>
> C でユーザ定義関数を書いてしまえばできそうです。でも、アプリケー
ション側で結
>果的に同じことができるような作りにするのもある気がします。
>
> 単に動けばいいというのは、
>
> -- 7.2 用のダミー、7.3 では不用。
> CREATE OR REPLACE FUNCTION g(int4, int4) RETURNS SETOF integer
AS '
> SELECT 0;
> ' LANGUAGE sql;
>
> CREATE OR REPLACE FUNCTION g(int4, int4) RETURNS SETOF integer
AS '
> SELECT g($1 - 1, $2) WHERE $1 > $2 UNION SELECT $1;
> ' language sql;
>
> SELECT * FROM (SELECT g(e, b)
> FROM (SELECT min(id) AS b, max(id) AS e FROM
abc) AS s)
> AS g
> EXCEPT SELECT id FROM abc
> ;
>
> 結果は、
>
> g
> ---
> 2
> 3
> 6
> 7
> 9
> (5 rows)
>
>
>Kenji Sugita
>sugita @ sra.co.jp
>
pgsql-jp メーリングリストの案内