The following jointypes produce the following types of results, based on the records matching produced by the joincondition:
Example:
Rec := RECORD,MAXLENGTH(4096) STRING1 Letter; UNSIGNED1 DS; END; ds1 := DATASET([{'A',1},{'B',1},{'C',1},{'D',1},{'E',1}],Rec); ds2 := DATASET([{'A',2},{'B',2},{'H',2},{'I',2},{'J',2}],Rec); ds3 := DATASET([{'B',3},{'C',3},{'M',3},{'N',3},{'O',3}],Rec); ds4 := DATASET([{'A',4},{'B',4},{'R',4},{'S',4},{'T',4}],Rec); ds5 := DATASET([{'B',5},{'V',5},{'W',5},{'X',5},{'Y',5}],Rec); SetDS := [ds1,ds2,ds3,ds4,ds5]; j1 := MERGEJOIN(SetDS, STEPPED(LEFT.Letter=RIGHT.Letter), SORTED(Letter)); j2 := MERGEJOIN(SetDS, STEPPED(LEFT.Letter=RIGHT.Letter), SORTED(Letter),LEFT OUTER); j3 := MERGEJOIN(SetDS, STEPPED(LEFT.Letter=RIGHT.Letter), SORTED(Letter),LEFT ONLY); j4 := MERGEJOIN(SetDS, STEPPED(LEFT.Letter=RIGHT.Letter), SORTED(Letter),MOFN(3)); j5 := MERGEJOIN(SetDS, STEPPED(LEFT.Letter=RIGHT.Letter), SORTED(Letter),MOFN(3,4)); OUTPUT(j1); OUTPUT(j2); OUTPUT(j3); OUTPUT(j4); OUTPUT(j5);