スカラー 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;