

 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/)。

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

# 複合運算式
<a name="r_compound_expressions"></a>

複合表達式是由算術運算子聯結的一連串的簡單表達式。在複合表達式中使用的簡易表達式，必須傳回數值。

## 語法
<a name="r_compound_expressions-synopsis"></a>

```
expression 
operator 
expression | (compound_expression)
```

## 引數
<a name="r_compound_expressions-arguments"></a>

 *表達式*   
求值的簡易表達式。

 *operator*   
 複合的算術表達式可使用下列的運算子來建構，依此優先順序使用：  
+ ( )：用來控制求值順序的括號
+ \+、-：正號和負號/運算子
+  ^、\|/、\|\|/：乘冪、平方根、立方根
+ \*、/、%：乘法、除法和模除運算子
+  @：絕對值
+ \+、-：加和減
+ &、\|、\#、\~、<<、>>：AND、OR、NOT、向左移位、向右移位的位元運算子
+ \|\|：串接

 *(compound\_expression)*   
複合運算式可以使用括號來巢狀化。

## 範例
<a name="r_compound_expressions-examples"></a>

複合運算式的範例包括下列。

```
('SMITH' || 'JONES')
sum(x) / y
sqrt(256) * avg(column)
rank() over (order by qtysold) / 100
(select (pricepaid - commission) from sales where dateid = 1882) * (qtysold)
```

某些函式也可以嵌套於其他函式內。例如，任何純量函式都可以嵌套在另一個純量函式之內。下列的範例會傳回一組數字的絕對值總和：

```
sum(abs(qtysold))
```

視窗函式不能做為彙總函式或其他視窗函式的引數使用。下列的表達式會傳回錯誤：

```
avg(rank() over (order by qtysold))
```

視窗函式可以嵌套彙總函式。下列的表達式會求出值集合的總和，然後加以排序：

```
rank() over (order by sum(qtysold))
```