

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

# COLLECT\$1LIST 函數
<a name="COLLECT_LIST"></a>

COLLECT\$1LIST 函數會收集並傳回非唯一元素的清單。

當您想要從一組資料列收集多個值到單一陣列或列出資料結構時，這種類型的函數很有用。

**注意**  
函數是非確定性的，因為收集結果的順序取決於資料列的順序，這在執行隨機播放操作之後可能是非確定性的。

## 語法
<a name="COLLECT_LIST-syntax"></a>

```
collect_list(expr)
```

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

 *expr*   
任何類型的表達式。

## 傳回值
<a name="COLLECT_LIST-returns"></a>

傳回引數類型的 ARRAY。陣列中元素的順序是非確定性的。

會排除 NULL 值。

如果指定 DISTINCT，則函數只會收集唯一值，並且是`collect_set `彙總函數的同義詞。

## 範例
<a name="COLLECT_LIST-example"></a>

下列查詢會將 col 資料欄中的所有值收集到清單中。`VALUES` 子句用於建立具有三列的內嵌資料表，其中每一列都有一個值分別為 1、2 和 1 的單欄 col。然後， `collect_list() `函數會用來將所有值從 col 資料欄彙總到單一陣列。此 SQL 陳述式的輸出會是陣列 `[1,2,1]`，其中包含來自 col 資料欄的所有值，依其在輸入資料中出現的順序排列。

```
SELECT collect_list(col) FROM VALUES (1), (2), (1) AS tab(col);
 [1,2,1]
```