

如需與 Amazon Timestream for LiveAnalytics 類似的功能，請考慮使用 Amazon Timestream for InfluxDB。它提供簡化的資料擷取和單一位數毫秒查詢回應時間，以進行即時分析。[在這裡](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html)進一步了解。

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

# 條件式運算式
<a name="conditional-expressions"></a>

LiveAnalytics 的 Timestream 支援下列條件式表達式。

**Topics**
+ [CASE 陳述式](conditional-expressions.CASE.md)
+ [IF 陳述式](conditional-expressions.IF.md)
+ [COALESCE 陳述式](conditional-expressions.COALESCE.md)
+ [NULLIF 陳述式](conditional-expressions.NULLIF.md)
+ [TRY 陳述式](conditional-expressions.TRY.md)

# CASE 陳述式
<a name="conditional-expressions.CASE"></a>

**CASE** 陳述式會從左到右搜尋每個值表達式，直到找到一個等於 的值表達式`expression`。如果找到相符項目，則會傳回相符值的結果。如果找不到相符項目，則會傳回子`ELSE`句中存在的結果；否則`null`會傳回。語法如下：

```
CASE expression
    WHEN value THEN result
    [ WHEN ... ]
    [ ELSE result ]
END
```

 Timestream 也支援 **CASE** 陳述式的下列語法。在此語法中，「搜尋」表單會從左到右評估每個布林值條件，直到一個為 ，`true`並傳回相符的結果。如果沒有條件為 `true`，則會傳回子`ELSE`句中存在的結果；否則`null`會傳回。請參閱以下替代語法：

```
CASE
    WHEN condition THEN result
    [ WHEN ... ]
    [ ELSE result ]
END
```

# IF 陳述式
<a name="conditional-expressions.IF"></a>

**IF** 陳述式會評估條件為 true 或 false，並傳回適當的值。Timestream 支援下列兩種 **IF** 語法表示法：

```
if(condition, true_value)
```

`true_value` 如果條件為 ，則此語法會評估並傳回 `true`；否則`null`會傳回`true_value`且不評估。

```
if(condition, true_value, false_value)
```

`true_value` 如果條件為 ，則此語法會評估並傳回 `true`，否則會評估並傳回 `false_value`。

## 範例
<a name="conditional-expressions.IF.examples"></a>

```
SELECT
  if(true, 'example 1'),
  if(false, 'example 2'),
  if(true, 'example 3 true', 'example 3 false'),
  if(false, 'example 4 true', 'example 4 false')
```


| \$1col0 | \$1col1 | \$1col2 | \$1col3 | 
| --- | --- | --- | --- | 
|  `example 1`  |  `-` `null`  |  `example 3 true`  |  `example 4 false`  | 

# COALESCE 陳述式
<a name="conditional-expressions.COALESCE"></a>

 **COALESCE** 會傳回引數清單中的第一個非空值。語法如下：

```
coalesce(value1, value2[,...])
```

# NULLIF 陳述式
<a name="conditional-expressions.NULLIF"></a>

**IF** 陳述式會評估條件為 true 或 false，並傳回適當的值。Timestream 支援下列兩種 **IF** 語法表示法：

如果 **NULLIF 等於 ，則**傳回 null`value2`；否則會傳回 `value1`。 `value1`語法如下：

```
nullif(value1, value2)
```

# TRY 陳述式
<a name="conditional-expressions.TRY"></a>

**TRY** 函數會評估表達式，並透過傳回 來處理特定類型的錯誤`null`。語法如下：

```
try(expression)
```