

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 运算符


您可以在计算字段中使用以下运算符。Quick 使用标准运算顺序：括号、指数、乘法、除法、加法、减法 (PEMDAS)。等于（=）和不等于（<>）比较区分大小写。
+ 加 (\$1)
+ 减 (−)
+ 乘 (\$1)
+ 除 (/)
+ 取模（%）– 另请参阅以下列表中的 `mod()`。
+ 幂（^）– 另请参阅以下列表中的 `exp()`。
+ 等于 (=)
+ 不等于 (<>)
+ 大于（>）
+ 大于或等于 (>=)
+ 小于（<）
+ 小于或等于（<=）
+ AND
+ 或
+ NOT

Amazon Quick 支持将以下数学函数应用于表达式。
+ `[https://docs.amazonaws.cn/quicksight/latest/user/mod-function.html](https://docs.amazonaws.cn/quicksight/latest/user/mod-function.html)(number, divisor)` – 查找将一个数字除以除数之后的余数。
+ `[https://docs.amazonaws.cn/quicksight/latest/user/log-function.html](https://docs.amazonaws.cn/quicksight/latest/user/log-function.html)(expression) ` – 返回给定表达式的以 10 为底的对数。
+ `[https://docs.amazonaws.cn/quicksight/latest/user/ln-function.html](https://docs.amazonaws.cn/quicksight/latest/user/ln-function.html)(expression) ` – 返回给定表达式的自然对数。
+ `[https://docs.amazonaws.cn/quicksight/latest/user/abs-function.html](https://docs.amazonaws.cn/quicksight/latest/user/abs-function.html)(expression) ` – 返回给定表达式的绝对值。
+ `[https://docs.amazonaws.cn/quicksight/latest/user/sqrt-function.html](https://docs.amazonaws.cn/quicksight/latest/user/sqrt-function.html)(expression) ` – 返回给定表达式的平方根。
+ `[https://docs.amazonaws.cn/quicksight/latest/user/exp-function.html](https://docs.amazonaws.cn/quicksight/latest/user/exp-function.html)(expression) ` – 返回以自然常数 *e* 为底且以指定表达式为幂的值。

要使冗长的计算更易于阅读，您可以使用圆括号来澄清分组和计算优先级。在以下语句中，不需要圆括号。首先处理乘法语句，然后将结果与 5 相加，返回值 26。但是，圆括号使语句更易于阅读，因此也易于维护。

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

因为圆括号排在运算顺序的第一位，所以您可以改变运用其他运算符的顺序。例如，在以下语句中，先处理加法语句，然后将结果乘以 3 以返回值 36。

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

## 示例：算术运算符
多个运算符

以下示例使用多个算术运算符确定扣除折扣后的销售总额。

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

## 示例：（/）除法
（/）除法

下面的示例使用除法将 3 除以 2。返回值 1.5。Amazon Quick 使用浮点除法。

```
3/2
```

## 示例：（=）等于
= (等于)

使用 = 执行区分大小写的值比较。比较为 TRUE 的行包括在结果集中。

在以下示例中，在结果中包含 `Region` 字段为 **South** 的行。如果 `Region` 为 **south**，则排除这些行。

```
Region = 'South'
```

在下例中，比较结果为 FALSE。

```
Region = 'south'
```

以下示例显示一个比较，它将 `Region` 全部转换为大写形式 (**SOUTH**)，然后与 **SOUTH** 进行比较。这会返回区域为 **south**、**South** 或 **SOUTH** 的行。

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

## 示例：（<>）
<>（不等于）

不等号 <> 意味着*小于或大于*。

因此，如果 **x<>1**，则可以说成 *x 小于 1 或大于 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) )
```

## 示例：(^)
^（幂）

幂符号 `^` 表示 * 的 * 次幂。您可以将幂运算符与任何数值字段和任何有效指数一起使用。

以下示例是 2 的 4 次幂或 (2 \$1 2 \$1 2 \$1 2) 的简单表达式。这会返回值 16。

```
2^4
```

以下示例计算收入字段的平方根。

```
revenue^0.5
```

## 示例：AND、OR 和 NOT
使用 AND、OR 和 NOT 运算符来完善您的选择标准。当您需要显示不同比较之间的关系时，这些运算符很有用。

以下示例使用 AND、OR 和 NOT 来比较多个表达式。表达式中使用了条件运算符，以标记不在华盛顿或俄勒冈州、享受特别促销并且订单超过 10 个的最大客户。如果没有返回值，则使用值“n/a”。

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

## 示例：创建比较列表如“in”或“not in”
in/not in

此例使用运算符来创建比较，以查找在指定值列表中存在或不存在的值。

以下示例比较 `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
```

## 示例：创建“between”比较
介于

该示例使用比较运算符创建一个比较，以显示介于两个值之间的值。

以下示例检查 `OrderDate` 并返回 `OrderDate` 介于 2016 年第一天与最后一天之间的行。在这种情况下，我们希望包含第一天和最后一天，因此我们在比较运算符上使用了“或等于”。

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