

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

# 巢狀類型
<a name="s_Nested-data-type"></a>

AWS Clean Rooms 支援涉及巢狀資料類型資料的查詢，特別是 AWS Glue STRUCT、ARRAY 和 MAP 資料欄類型。只有自訂分析規則支援巢狀資料類型。

值得注意的是，巢狀資料類型不符合 SQL 資料庫關聯式資料模型的剛性表格式結構。

巢狀資料類型包含參考資料中不同實體的標籤。它們可以包含複雜值，例如陣列、巢狀結構，以及與序列化格式相關聯的其他複雜結構，例如 JSON。巢狀資料類型支援個別巢狀資料類型欄位或物件最多 1 MB 的資料。

**Topics**
+ [ARRAY 類型](array_type.md)
+ [MAP 類型](map_type.md)
+ [STRUCT 類型](struct_type.md)
+ [巢狀資料類型的範例](s_nested-data-type-examples.md)

# ARRAY 類型
<a name="array_type"></a>

使用 ARRAY 類型來表示包含具有 類型之元素序列的值`elementType`。

```
array(elementType, containsNull)
```

使用 `containsNull` 指示 ARRAY 類型中的元素是否可以有`null`值。

# MAP 類型
<a name="map_type"></a>

使用 MAP 類型來表示包含一組鍵值對的值。

```
map(keyType, valueType, valueContainsNull)
```

`keyType`：金鑰的資料類型 

`valueType`：值的資料類型

金鑰不允許具有`null`值。使用 `valueContainsNull` 指示 MAP 類型值的值是否可以有`null`值。

# STRUCT 類型
<a name="struct_type"></a>

使用 STRUCT 類型以 StructFields （欄位） 序列描述的結構來表示值。

```
struct(name, dataType, nullable)
```

StructField(name， dataType， nullable)：代表 StructType 中的欄位。

`dataType`：資料類型欄位

`name`：欄位的名稱

使用 `nullable` 指示這些欄位的值是否可以有`null`值。

# 巢狀資料類型的範例
<a name="s_nested-data-type-examples"></a>

對於 `struct<given:varchar, family:varchar>`類型，有兩個屬性名稱： `given`和 `family`，每個對應至一個`varchar`值。

對於 `array<varchar>`類型，陣列指定為 的清單`varchar`。

`array<struct<shipdate:timestamp, price:double>>` 類型是指具有 `struct<shipdate:timestamp, price:double>` 類型的元素清單。

`map` 資料類型的行為類似於 `array`的 `structs`，其中陣列中每個元素的屬性名稱由 表示，`key`並映射到 `value`。

**Example**  
例如， `map<varchar(20), varchar(20)>`類型視為 `array<struct<key:varchar(20), value:varchar(20)>>`，其中 `key`和 `value`參考基礎資料中映射的屬性。  
如需如何 AWS Clean Rooms 啟用導覽至陣列和結構的資訊，請參閱 [Navigation (導覽)](query-nested-data.md#navigation)。  
如需如何使用查詢的 FROM 子句導覽陣列來 AWS Clean Rooms 啟用陣列上的反覆運算的資訊，請參閱 [解除巢狀化查詢](query-nested-data.md#unnesting-queries)。