sql >> データベース >  >> RDS >> PostgreSQL

1つのパラメータで複数の値を渡す

    関数は作成されません。 RETURN endの後 構文的にナンセンスです。

    いずれにせよ、 VARIADICを持つ関数 パラメータは正確に あなたが求めるもの:

    CREATE OR REPLACE FUNCTION test_function(VARIADIC varchar[])
     RETURNS SETOF integer AS
    $func$
    SELECT column2
    FROM   test_table
    WHERE  column1 = ANY($1);
    $func$  LANGUAGE sql;
    

    電話(必要に応じて):

    SELECT * FROM test_function('data1', 'data2', 'data3');
    

    単純なSQL関数を使用すると、単純な例ではplpgsqlは必要ありません。ただし、VARIADIC plpgsql関数でも機能します。

    RETURNS SETOF integerの使用 これは明らかに複数の行を返す可能性があるためです。

    詳細:

    • 単一のパラメータで複数の値を渡す
    • plpgsql関数の入力配列の要素に一致する行を返します
    • VARIADICパラメータは最後の入力パラメータである必要があります
    • plpgsql関数の入力配列の要素に一致する行を返します

    SQLフィドル 追加のパラメータを使用したデモ。




    1. MySQLビューを作成して使用する方法

    2. 値が24:00:00を超える.Netタイムスパンを格納するための正しいSQLタイプは何ですか?

    3. SQLite-データの更新

    4. MySQLで通知用のデータベースを設計するためのガイド