2

我是 ECL 的新手,在尝试理解 RIGHT 和 LEFT 关键字(用于 DEDUP、GROUP 和其他函数)时遇到了麻烦。它们是如何工作的?ECL 参考指南有一段关于它应该做什么。

例如,这段代码在做什么?

MyRec := RECORD
    STRING1 Value1;
    STRING1 Value2;
END;

SomeFile := DATASET([{'C','G'},
                     {'C','C'},
                     {'A','X'},
                     {'B','G'},
                     {'A','B'}], MyRec);

Dedup2 := DEDUP(Val2Sort, LEFT.Value2 = RIGHT.Value2);
4

1 回答 1

2

显然问题在于我查看数据的方式。我将 DATASET 格式化为一列,以便更容易理解,最终弄乱了我的查看。LEFT 和 RIGHT 是 DATASET 中的每个注册表,应该这样查看:

DATASET([{'C','G'},{'C','C'},{'A','X'},{'B','G'},{'A','B'}])

这样,在第一次迭代中,{'C','G'} (LEFT) 将与 {'C','C'} (RIGHT) 进行比较,依此类推。

于 2020-04-14T14:22:32.143 回答