[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 メーリングリストの案内