

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

# 運算子
<a name="arithmetic-and-comparison-operators"></a>

您可以在計算欄位中使用以下運算子。Quick 使用標準操作順序：括號、指數、乘法、除法、加法、減法 (PEMDAS)。等於 (=) 和不等於 (<>) 比較會區分大小寫。
+ 加法 (\$1)
+ 減法 (-)
+ 乘法 (\$1)
+ 除法 (/)
+ 模數 (%)：另請參閱下列清單中的 `mod()`。
+ 次方 (^)：另請參閱下列清單中的 `exp()`。
+ 等於 (=)
+ 不等於 (<>)
+ 大於 (>)
+ 大於或等於 (>=)
+ 小於 (<)
+ 小於或等於 (<=)
+ AND
+ 或
+ NOT

Amazon Quick 支援將下列數學函數套用至表達式。
+ `[https://docs.aws.amazon.com/quicksight/latest/user/mod-function.html](https://docs.aws.amazon.com/quicksight/latest/user/mod-function.html)(number, divisor)`：會在以除數除以數字後找到餘數。
+ `[https://docs.aws.amazon.com/quicksight/latest/user/log-function.html](https://docs.aws.amazon.com/quicksight/latest/user/log-function.html)(expression) `：會傳回指定表達式之以 10 為底的對數。
+ `[https://docs.aws.amazon.com/quicksight/latest/user/ln-function.html](https://docs.aws.amazon.com/quicksight/latest/user/ln-function.html)(expression) `：會傳回指定表達式的自然對數。
+ `[https://docs.aws.amazon.com/quicksight/latest/user/abs-function.html](https://docs.aws.amazon.com/quicksight/latest/user/abs-function.html)(expression) `：會傳回指定表達式的絕對值。
+ `[https://docs.aws.amazon.com/quicksight/latest/user/sqrt-function.html](https://docs.aws.amazon.com/quicksight/latest/user/sqrt-function.html)(expression) `：會傳回指定表達式的平方根。
+ `[https://docs.aws.amazon.com/quicksight/latest/user/exp-function.html](https://docs.aws.amazon.com/quicksight/latest/user/exp-function.html)(expression) `：會傳回指定表達式之以自然對數為底的 *e* 次方。

若要讓冗長的計算易於閱讀，您可以使用括號來釐清計算中的分組和優先順序。在以下陳述式中，您不需要使用括號。先處理乘法陳述式，然後將結果加上五，傳回值 26。不過，括號會讓陳述式更易於閱讀進而維護。

```
5 + (7 * 3)
```

由於括號是運算中的第一個順序，您可以變更套用其他運算子的順序。例如，在以下陳述式中，會先處理加法陳述式，然後再將結果乘以三，傳回值 36。

```
(5 + 7) * 3
```

## 範例：算術運算子
<a name="operator-example-multiple-operators"></a>

以下範例使用多個算術運算子來判斷折扣後的銷售總計。

```
(Quantity * Amount) - Discount
```

## 範例：(/) 除法
<a name="operator-example-division-operators"></a>

下列範例使用除法將 3 除以 2。傳回 1.5 的值。Amazon Quick 使用浮點分割。

```
3/2
```

## 範例：(=) 等於
<a name="operator-example-equal"></a>

使用 = 來對值執行區分大小寫的比較。結果集會中包含比較為 TRUE 的資料列。

在下列範例中，結果中會包含 `Region` 欄位為 **South** 的資料列。如果 `Region` 為 **south**，則會排除這些資料列。

```
Region = 'South'
```

在下列範例中，比較會評估為 FALSE。

```
Region = 'south'
```

以下範例顯示的比較會將 `Region` 轉換為全大寫 (**SOUTH**)，並將它和 **SOUTH** 比較。這樣會傳回區域為 **south**、**South** 或 **SOUTH** 的資料列。

```
toUpper(Region) = 'SOUTH'
```

## 範例：(<>)
<a name="operator-example-not-equal"></a>

不等於符號 <> 表示小於或大於**。

因此，如果假設 **x<>1**，則我們是指*如果 x 小於 1 或如果 x 大於 1*。< 和 > 會一起評估。換句話說，*如果 x 是 1 以外的任何值*。或是，*x 不等於 1*。

**注意**  
使用 <>，而非 \$1=。

以下範例會將 `Status Code` 與數值比較。這樣會傳回 `Status Code` 不等於 **1** 的資料列。

```
statusCode <> 1
```

以下範例會比較多個 `statusCode` 值。在此情況下，作用中記錄會有 `activeFlag = 1`。此範例會傳回以下其中一項適用的資料列：
+ 針對作用中記錄，顯示狀態不是 1 或 2 的資料列
+ 針對非作用中記錄，顯示狀態為 99 或 -1 的資料列

```
( activeFlag = 1 AND (statusCode <> 1 AND statusCode <> 2) )
OR
( activeFlag = 0 AND (statusCode= 99 OR statusCode= -1) )
```

## 範例：(^)
<a name="operator-example-power"></a>

次方符號 `^` 表示*的次方*。您可以在任何數值欄位使用乘冪運算子，搭配任何有效的指數。

以下範例是 2 的 4 次方或 (2\$1 2\$1 2\$1 2) 的簡單表達式。這會傳回值 16。

```
2^4
```

以下範例會計算收入欄位的平方根。

```
revenue^0.5
```

## 範例：AND、OR 和 NOT
<a name="operator-example-and-or-not"></a>

以下範例使用 AND、OR 和 NOT 來比較多個表達式。它使用條件式運算子來標記某次促銷中不在華盛頓或俄勒岡州的最大客戶，這些客戶的訂單數均超過 10。如果沒有傳回任何值，則會使用值 'n/a'。

```
ifelse(( (NOT (State = 'WA' OR State = 'OR')) AND Orders > 10), 'Special Promotion XYZ', 'n/a')
```

## 範例：建立「在」或「不在」之類的比較清單
<a name="operator-example-in-or-not-in"></a>

此範例使用運算子來建立比較，以尋找存在或不存在於指定值清單中的值。

以下範例會將 `promoCode` 與指定的值清單比較。此範例會傳回 `promoCode` 在清單 **(1, 2, 3)** 中的資料列。

```
promoCode    = 1
OR promoCode = 2
OR promoCode = 3
```

以下範例會將 `promoCode` 與指定的值清單比較。此範例會傳回 `promoCode` 不在清單 **(1, 2, 3)** 中的資料列。

```
NOT(promoCode = 1
OR promoCode  = 2
OR promoCode  = 3
)
```

表達此比較的另一個方式是提供一個清單，其中的 `promoCode` 不等於清單中的任何項目。

```
promoCode     <> 1
AND promoCode <> 2
AND promoCode <> 3
```

## 範例：建立「介於」比較
<a name="operator-example-between"></a>

此範例使用比較運算子來建立比較，顯示存在於一個值和另一個值之間的值。

以下範例會檢查 `OrderDate`，並傳回 `OrderDate` 介於 2016 年的第一天和最後一天之間的資料列。在此情況下，我們要包含第一天和最後一天，因此我們在比較運算子上使用「或等於」。

```
OrderDate >= "1/1/2016" AND OrderDate <= "12/31/2016"
```