「マージ」アクティビティーを使用して、ソートされた 2 つの入力を結合します。
左と右の両方の入力は、マージまたは結合する前に、指定されたソート・キーに基づいてソートされている必要があります。 左と右の両方の入力に対して少なくとも 1 つのソート・キーを指定する必要があります。 「マージ」アクティビティーは、すべての重複を解決します。
各入力の繰り返しエレメントを指定するには、XPath 照会を使用します。 マージには、以下の 6 つのタイプがあります。
マージ・タイプ |
説明 |
マージして重複を除去 |
左と右の両方の入力で発生する重複を除去します。 Studio は、すべての重複を RemainderXML エレメントに送信します。 |
マージして左の重複を保持 |
左の入力からの重複を RemainderXML エレメントに送信します。 |
マージしてすべての重複を保持 |
両方の入力からの重複を保持します。 |
内部結合 |
指定されたキーに基づいて入力を結合します。 結合に参加していないすべての行は、RemainderXML エレメントに送信されます。 |
左外部結合 |
指定されたキーに基づいて入力を結合します。 左の入力からの行は、それが結合に参加していない場合でも、マージされる出力に保持されます。 Studio は、結合に参加していない右の入力からのすべての行を、RemainderXML エレメントに送信します。 |
完全外部結合 |
指定されたキーに基づいて入力を結合します。 結合に関係がない行も、マージされる出力に保持されます。 |
マージの例:
表 1 は、この例での左と右の入力を示しています。 表 2 は、「マージ」アクティビティーがサポートする各タイプのマージ操作の、予期される結果です。
以下の例では、x がキー変数です。
Studio は、マージまたは結合された項目を mergeXML エレメントに送信し、マージにも結合にも参加していないすべての項目を RemainderXml エレメントに送信します。
表 1. 左および右の入力左の入力 |
右の入力 |
<entries>
<entry x=”1” y=”10”/>
<entry x=”2” y=”20”/>
<entry x=”2” y=”21”/>
<entry x=”3” y=”30”/>
</entries>
|
<entries>
<entry x=”0” z=”00”/>
<entry x=”2” z=”22”/>
<entry x=”2” z=”23”/>
<entry x=”4” z=”40”/>
</entries>
|
表 2. 各マージ・タイプのマージ結果マージ・タイプ |
マージ結果 |
マージして重複を除去 |
<entries>
<entry x=”0” z=”00”/>
<entry x=”1” y=”10”/>
<entry x=”3” y=”30”/>
<entry x=”4” z=”40”/>
</entries>
|
マージして左の重複を保持 |
<entries>
<entry x=”0” z=”00”/>
<entry x=”1” y=”10”/>
<entry x=”2” y=”20”/>
<entry x=”2” y=”21”/>
<entry x=”3” y=”30”/>
<entry x=”4” z=”40”/>
</entries>
|
マージしてすべての重複を保持 |
<entries>
<entry x=”0” z=”00”/>
<entry x=”1” y=”10”/>
<entry x=”2” y=”20”/>
<entry x=”2” y=”21”/>
<entry x=”2” z=”22”/>
<entry x=”2” z=”23”/>
<entry x=”3” y=”30”/>
<entry x=”4” z=”40”/>
</entries>
|
内部結合 |
<entries>
<entry x=”2” y=”20” z=”22”/>
<entry x=”2” y=”20” z=”23”/>
<entry x=”2” y=”21” z=”22”/>
<entry x=”2” y=”21” z=”23”/>
</entries>
|
左外部結合
|
<entries>
<entry x=”1” y=”10”/>
<entry x=”2” y=”20” z=”22”/>
<entry x=”2” y=”20” z=”23”/>
<entry x=”2” y=”21” z=”22”/>
<entry x=”2” y=”21” z=”23”/>
<entry x=”3” y=”30”/>
</entries>
|
完全外部結合 |
<entries>
<entry x=”0” z=”00”/>
<entry x=”1” y=”10”/>
<entry x=”2” y=”20” z=”22”/>
<entry x=”2” y=”20” z=”23”/>
<entry x=”2” y=”21” z=”22”/>
<entry x=”2” y=”21” z=”23”/>
<entry x=”3” y=”30”/>
<entry x=”4” z=”40”/>
</entries>
|