MergeJoin<TInput>

Class MergeJoin<TInput>

Will join data from the two inputs into one output. Make sure both inputs are sorted or in the right order. Each row from the left join target will be merged with a row from the right join target. If the amount of ingoing data is unevenly distributed, the last rows will be joined with null values.

You can define a match condition that let you only merge matching records. This will change the match behavior a little bit. By assuming that the input is sorted, not matching records will be joined with null then. This can be compared with a left or right join.

Inheritance
MergeJoin<TInput, TInput, TInput>
MergeJoin<TInput>
Inherited Members
Namespace: ETLBox.DataFlow
Assembly: ETLBox.dll
Syntax
    public class MergeJoin<TInput> : MergeJoin<TInput, TInput, TInput>, IDataFlowSource<TInput>, IDataFlowSource, IDataFlowDestination, IDataFlowComponent, ILoggableTask
Type Parameters
NameDescription
TInput
Examples
  MergeJoin<InputType1, InputType2, OutputType> join = new MergeJoin<InputType1, InputType2, OutputType>();
                                                                                                                                                                                                                                                             join.MergeJoinFunc =  (leftRow, rightRow) => {
                                                                                                                                                                                                                                                                 return new OutputType()
                                                                                                                                                                                                                                                                 {
                                                                                                                                                                                                                                                                     Result = leftRow.Value 1 + rightRow.Value2
                                                                                                                                                                                                                                                                 };
                                                                                                                                                                                                                                                             });
                                                                                                                                                                                                                                                             source1.LinkTo(join.LeftInput);
                                                                                                                                                                                                                                                             source2.LinkTo(join.RightInput);
                                                                                                                                                                                                                                                             join.LinkTo(dest);

Constructors

MergeJoin()

Declaration
    public MergeJoin()

MergeJoin(Func<TInput, TInput, TInput>)

Declaration
    public MergeJoin(Func<TInput, TInput, TInput> mergeJoinFunc)
Parameters
TypeNameDescription
Func<TInput, TInput, TInput>mergeJoinFunc

Implements