1

データフローには、次のようなテーブルをロードするADONETソースがあります。

PersonID, Email
1, "john@hotmail.com"
1, "john_job@yahoo.com"
2, "susan@gmail.com"
2, "sus2010@hotmail.com"

各人からのメールをマージして、次のような結果を得る必要があります。

PersonID, EmailsArray
1, "john@hotmail.com,john_job@yahoo.com"
2, "susan@gmail.com,sus2010@hotmail.com"

どうすればいいですか?派生列を使用していますか?スクリプトコンポーネント?foreachループ?(データフローには存在しません)。前もって感謝します。

4

1 に答える 1

2

次のようなロジックで非同期スクリプト コンポーネントを使用します。

  1. ID 列でデータを並べ替えます。
  2. スクリプト コンポーネントで、前の ID を追跡する変数を宣言し、スクリプトの最後で入力バッファーの ID 列に割り当てます。
  3. 入力バッファーの行ごとに、メール フィールドを文字列変数に連結します。
  4. 以前の ID が現在の ID (入力バッファーから取得) と等しいかどうかを確認します。異なる場合は、前の ID と連結された文字列を含む行を出力バッファーに追加します。文字列を空にリセットします。

MSDN

于 2012-12-22T10:40:25.123 に答える