スカラー SQL UDF の作成 - Amazon Redshift

スカラー SQL UDF の作成

スカラー SQL UDF には、関数が呼び出されて単一の値を返すときに実行される SQL SELECT 句が組み込まれています。CREATE FUNCTION コマンドは以下のパラメータを定義します。

  • (省略可能) 入力引数。各引数にデータ型が存在する必要があります。

  • 1 つの戻りデータ型。

  • 1 つの SQL SELECT 句。SELECT 句で、関数定義の引数の順序に従って、$1、$2 などを使用して入力引数を参照します。

入力および戻りデータタイプは、任意の標準 Amazon Redshift データタイプを使用できます。

SELECT 句には FROM 句を含めないでください。代わりに、SQL UDF を呼び出す FROM 句を SQL ステートメントに含めます。

SELECT 句には、以下のタイプの句を含めることはできません。

  • FROM

  • INTO

  • WHERE

  • GROUP BY

  • ORDER BY

  • 制限

スカラー SQL 関数の例

次の例は、2 つの数値を比較し、大きいほうの数値を返す関数を作成する方法を示しています。詳細については、「CREATE FUNCTION」を参照してください。

create function f_sql_greater (float, float) returns float stable as $$ select case when $1 > $2 then $1 else $2 end $$ language sql;

次のクエリは、新しい f_sql_greater 関数を呼び出して SALES テーブルをクエリし、COMMISSION または PRICEPAID の 20% のどちらか大きいほうを返します。

select f_sql_greater(commission, pricepaid*0.20) from sales;