

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

# DatasetMatch
<a name="dqdl-rule-types-DatasetMatch"></a>

 檢查主資料集中的資料是否與參考資料集中的資料相符。系統會使用提供的索引鍵資料欄映射來聯結這兩個資料集。若您只想檢查這些資料欄中的資料是否相等，則可提供其他資料欄映射。請注意，為了讓 **DataSetMatch** 順利運作，您的聯結索引鍵應是唯一的，且不得為 NULL (必須為主索引鍵)。如果不滿足這些條件，則會顯示以下錯誤訊息：「提供的索引鍵映射不適合指定的資料框架」。如果您無法擁有唯一的聯結索引鍵，請考慮使用其他規則類型 (例如 **AggregateMatch**) 來比對摘要資料。

**語法**

```
DatasetMatch {{<REFERENCE_DATASET_ALIAS>}} {{<JOIN CONDITION WITH MAPPING>}} {{<OPTIONAL_MATCH_COLUMN_MAPPINGS>}} {{<EXPRESSION>}}
```
+ **REFERENCE\_DATASET\_ALIAS**：參考資料集的別名，用於比較來自主資料集的資料。
+ **KEY\_COLUMN\_MATION**：以逗號分隔的資料欄名稱清單，構成資料集中的索引鍵。如果兩個資料集中的資料欄名稱不相同，您必須使用 `->` 加以分隔
+ **OPTIONAL\_MATCH\_COLUMN\_MAPPINGS**：如果您只想檢查某些資料欄中的資料是否相符，則可提供此參數。它使用與索引鍵資料欄映射相同的語法。如果未提供此參數，則會比對所有剩餘資料欄中的資料。其餘的非索引鍵資料欄在兩個資料集中必須具有相同的名稱。
+ **EXPRESSION** – 針對規則類型回應執行的運算式，以產生布林值。如需詳細資訊，請參閱[表達式](dqdl.md#dqdl-syntax-rule-expressions)。

**範例：使用 ID 資料欄比對集合資料集**

下列範例規則會使用 "ID" 資料欄聯結兩個資料集，檢查是否有 90% 以上的主資料集與參考資料集相符。該規則會比較這種情況下的所有資料欄。

```
DatasetMatch "reference" "ID" >= 0.9
```

**範例：使用多個索引鍵資料欄比對集合資料集**

在下列範例中，主資料集與參考資料集的索引鍵資料欄名稱各不相同。`ID_1` 和 `ID_2` 會在主資料集中共同形成一個複合索引鍵。`ID_ref1` 和 `ID_ref2` 會在參考資料集中共同形成一個複合索引鍵。在此情況下，您可使用特殊語法來提供資料欄名稱。

```
DatasetMatch "reference" "ID_1->ID_ref1,ID_2->ID_ref2" >= 0.9
```

**範例：使用多個索引鍵資料欄比對集合資料集，並檢查特定資料欄是否相符**

此範例建立在前面的範例之上。我們僅會檢查包含相符數量的資料欄。此資料欄在主資料集中名為 `Amount1`，在參考資料集中名為 `Amount2`。您想要取得完全相符的結果。

```
DatasetMatch "reference" "ID_1->ID_ref1,ID_2->ID_ref2" "Amount1->Amount2" >= 0.9
```