HOME > 受験対策 > サンプル問題/例題解説 > Silverの例題解説「開発/SQL」 > SQLコマンド(関数定義、PL/pgSQL)

Silverの例題解説「開発/SQL - SQLコマンド(関数定義、PL/pgSQL)」

今回は、Silverの「開発/SQL - SQLコマンド(関数定義、PL/pgSQL)」からの出題です。

例題

Q. 次のPL/pgSQLの関数は、テーブルtestのsome_columnの値が引数valより大きい行の数を返すものである。空欄( _____ )に入るキーワードは何か。

CREATE FUNCTION count_test(val INTEGER) RETURNS INTEGER AS
DECLARE
rtest RECORD;
cnt INTEGER;
BEGIN
cnt := 0;
FOR rtest IN SELECT * FROM test WHERE some_column > val LOOP
cnt := cnt + 1;
( ________ );
RETURN cnt;
END;
LANGUAGE plpgsql;

※この例題は実際のOSS-DB技術者認定試験とは異なります。

解答と解説

PL/pgSQLでは、FOR、WHILE、FOREACHなどの制御構造で繰り返し実行を実現することができます。FORでは、多くの手続き型言語にある、iの値が1から10まで繰り返す、というようなパターンはもちろん、SELECT文が返す各行について処理を実行することもできます。
いずれの場合も、繰り返し実行する部分は、LOOPとEND LOOPで囲います。

従って、正解は END LOOP です。

  • 今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
  • 採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
  • ご質問・ご意見はこちら
  • ※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。

ページトップへ