

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

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

# 純量 SQL UDF
<a name="udf-creating-a-scalar-sql-udf"></a>

純量 SQL UDF 包含呼叫函數時執行的 SQL SELECT 子句，並傳回單一值。[CREATE FUNCTION](r_CREATE_FUNCTION.md) 命令定義下列參數：
+ (選用) 輸入引數。每個引數必須具有一個資料類型。
+ 一個傳回資料類型。
+ 一個 SQL SELECT 子句。在 SELECT 子句中，根據函數定義中的引數順序，使用 \$11、\$12 等來提及輸入引數。

輸入和傳回資料類型可以是任何標準 Amazon Redshift 資料類型。

不要在 SELECT 子句中包含 FROM 子句。反之，在呼叫 SQL UDF 的 SQL 陳述式中包含 FROM 子句。

SELECT 子句不可包含下列任何類型的子句：
+ FROM
+ INTO
+ WHERE
+ GROUP BY
+ ORDER BY
+ LIMIT

# 純量 SQL 函數範例
<a name="udf-scalar-sql-function-example"></a>

下列範例會建立一個函數，比較兩個數字並傳回較大的值。如需詳細資訊，請參閱[CREATE FUNCTION](r_CREATE_FUNCTION.md)。

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

下列查詢會呼叫新的 f\$1sql\$1greater 函數來查詢 SALES 資料表，並傳回 COMMISSION 或 20% 的 PRICEPAID，以較大者為準。

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