

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

# 建立陣列
<a name="creating-arrays"></a>

若要在 Athena 中建置陣列常值，請使用 `ARRAY` 關鍵字，後面接著方括弧 `[ ]` 並包含陣列元素 (以逗號分隔)。

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

此查詢會建立具有四個元素的陣列。

```
SELECT ARRAY [1,2,3,4] AS items
```

它會傳回：

```
+-----------+
| items     |
+-----------+
| [1,2,3,4] |
+-----------+
```

此查詢會建立兩個陣列。

```
SELECT ARRAY[ ARRAY[1,2], ARRAY[3,4] ] AS items
```

它會傳回：

```
+--------------------+
| items              |
+--------------------+
| [[1, 2], [3, 4]]   |
+--------------------+
```

若要從選取的相容類型資料欄建立陣列，請使用查詢，如此範例所示：

```
WITH
dataset AS (
  SELECT 1 AS x, 2 AS y, 3 AS z
)
SELECT ARRAY [x,y,z] AS items FROM dataset
```

此查詢會傳回：

```
+-----------+
| items     |
+-----------+
| [1,2,3]   |
+-----------+
```

在以下範例中，選取了兩個陣列，並以歡迎訊息傳回。

```
WITH
dataset AS (
  SELECT
    ARRAY ['hello', 'amazon', 'athena'] AS words,
    ARRAY ['hi', 'alexa'] AS alexa
)
SELECT ARRAY[words, alexa] AS welcome_msg
FROM dataset
```

此查詢會傳回：

```
+----------------------------------------+
| welcome_msg                            |
+----------------------------------------+
| [[hello, amazon, athena], [hi, alexa]] |
+----------------------------------------+
```

若要建立一系列的金鑰值組，請使用 `MAP` 運算子，其會使用一系列的金鑰，接著是一系列的值，如此範例所示：

```
SELECT ARRAY[
   MAP(ARRAY['first', 'last', 'age'],ARRAY['Bob', 'Smith', '40']),
   MAP(ARRAY['first', 'last', 'age'],ARRAY['Jane', 'Doe', '30']),
   MAP(ARRAY['first', 'last', 'age'],ARRAY['Billy', 'Smith', '8'])
] AS people
```

此查詢會傳回：

```
+-----------------------------------------------------------------------------------------------------+
| people                                                                                              |
+-----------------------------------------------------------------------------------------------------+
| [{last=Smith, first=Bob, age=40}, {last=Doe, first=Jane, age=30}, {last=Smith, first=Billy, age=8}] |
+-----------------------------------------------------------------------------------------------------+
```