使用中断关键字正在进行 4GL



break by关键字在Progress 4GL中的确切用途是什么?我没有从OpenEdge的关键字帮助中获得清晰的想法。by关键字和break by关键字之间的主要区别是什么。

BREAK 或 BREAK BY 关键字允许在查询中进行分组,而 BY 仅对结果进行排序。SQL 等效性是 GROUP BY。

BREAK BY 允许在生成的迭代中使用多个关键字:

第一个/最后一个

如果当前迭代的 DO 对于每个或重复 . 返回一个 TRUE 值。BREAK 块是新中断组的第一次/最后一次迭代,并修改所有三种块类型

首页/尾页

如果当前迭代的 DO 对于每个或重复 . 返回一个 TRUE 值。BREAK 块是该块的第一次/最后一次迭代。

您还可以使用许多聚合函数。请参阅联机帮助平均值、计数、最大值、最小值、总计、次平均数、次计数、次最大值、次最小值和小计。

假设您有此表:

Amount | Id
-----------
     1 | 1
     2 | 1
    10 | 2
     3 | 2
    -1 | 3
     0 | 3

还有一些例子:

/* Sorting based on amount. */
FOR EACH table by amount:
  DISPLAY amount id.
END.
/* Will display */
Amount | Id
-----------
    -1 | 3
     0 | 3
     1 | 1
     2 | 1
     3 | 2
    10 | 2
/* BREAK example */
FOR EACH table BREAK BY id BY amount:
    IF FIRST-OF(id) THEN DO:
      DISPLAY "First of".
    END.
    DISPLAY amount id.
END.
/* Will display */
Amount | Id |
-----------------
     1 | 1  | First of
     2 | 1  |
     3 | 2  | First of
    10 | 2  | 
    -1 | 3  | First of
     0 | 3  | 

最新更新