创建标量 SQL UDF
标量 SQL UDF 纳入了一个 SQL SELECT 子句,该子句在此函数被调用并返回单个值时执行。CREATE FUNCTION 命令定义以下参数:
-
(可选)输入参数。每个参数均必须具有一个数据类型。
-
一个返回数据类型。
-
一个 SQL SELECT 子句。在该 SELECT 子句中,使用 $1、$2 等按照参数在函数定义中的顺序引用输入参数。
输入和返回数据类型可以是任何标准 Amazon Redshift 数据类型。
请勿在 SELECT 子句中包括 FROM 子句。请改为在调用 SQL UDF 的 SQL 语句中包括 FROM 子句。
SELECT 子句不能包含以下任何类型的子句:
-
FROM
-
INTO
-
WHERE
-
GROUP BY
-
ORDER BY
-
LIMIT
标量 SQL 函数示例
以下示例创建一个用于比较两个数并返回较大值的函数。有关更多信息,请参阅 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;