本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
創建一個標量 SQL UDF
標量SQLUDF包含一個SQLSELECT子句,該子句在調用函數時運行並返回單個值。CREATE FUNCTION 命令定義下列參數:
-
(選用) 輸入引數。每個引數必須具有一個資料類型。
-
一個傳回資料類型。
-
一個SQLSELECT條款。在SELECT子句中,根據函數定義中引數的順序,參照使用 $1、$2 等的輸入引數。
輸入和傳回資料類型可以是任何標準 Amazon Redshift 資料類型。
不要在FROM條款中包含子SELECT句。而是在呼叫的SQL陳述式中包含FROM子句SQLUDF。
子SELECT句不能包含下列任何類型的子句:
-
FROM
-
INTO
-
WHERE
-
GROUP通過
-
ORDER通過
-
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_more 函式來查詢SALES資料表,並傳回百分之二十 (以較大COMMISSION者為準)。PRICEPAID
select f_sql_greater(commission, pricepaid*0.20) from sales;