PL/pgSQLのファンクション

アフィリエイト広告を利用しています

目的:与えられた数値に対して、その数値が素数かどうかを判定する。

素数とは 「正の約数が2つの自然数」 のことです。

  • 入力: n(整数)
  • 出力: 素数であれば TRUE、そうでなければ FALSE

1. ファンクションの作成

まず、上記のファンクションをPostgreSQLデータベースに作成します。これは一度だけ行う操作です。

CREATE OR REPLACE FUNCTION is_prime(n INT) RETURNS BOOLEAN AS $$
DECLARE
    i INT;
BEGIN
    IF n <= 1 THEN
        RETURN FALSE;
    END IF;
    FOR i IN 2..sqrt(n) LOOP
        IF n % i = 0 THEN
            RETURN FALSE;
        END IF;
    END LOOP;
    RETURN TRUE;
END;
$$ LANGUAGE plpgsql;

このファンクションは整数nを引数として取り、その数が素数かどうかを判定します。

2.PL/pgSQLファンクションが存在するかどうかを確認する

SELECT EXISTS (
    SELECT 1
    FROM pg_proc
    INNER JOIN pg_namespace ON pg_proc.pronamespace = pg_namespace.oid
    WHERE pg_proc.proname = 'is_prime'
    AND pg_namespace.nspname = 'public'
);

3. ファンクションの呼び出し

ファンクションが作成された後、任意の整数を引数として渡し、その整数が素数かどうかを判定するためにファンクションを呼び出すことができます。

例えば、17 が素数かどうかを判定するには、以下のようなSQLクエリを実行します。

結果は TRUE になります(17は素数です)。

別の例として、15 が素数かどうかを判定するには、以下のクエリを実行します。

この場合、結果は FALSE になります(15は素数ではありません)。

コメント

Loan Calculator

ローン計算

万円
%
ヶ月

タイトルとURLをコピーしました