創建一個標量 SQL UDF - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

創建一個標量 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;