正在使用Break by keyword 4GL

Nil*_*ate 2 progress-4gl openedge

正在进行的关键工作4GL的确切用途是什么?我没有从开放边缘的关键字帮助中获得清晰的想法.by和break by关键字之间的主要区别是什么?

Jen*_*nsd 19

BREAK或BREAK BY关键字可以在查询中进行分组,而BY只对结果进行排序.SQL等价是GROUP BY.

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

首个/最后-OF

如果DO,FOR EACH或REPEAT的当前迭代,则返回TRUE值...BREAK块是新中断组的第一个/最后一个迭代,并修改所有三个块类型

FIRST/LAST

如果DO,FOR EACH或REPEAT的当前迭代,则返回TRUE值...BREAK块是该块的第一个/最后一个迭代.

您还可以使用许多聚合函数.请参阅AVERAGE,COUNT,MAXIMUM,MINIMUM,TOTAL,SUB-AVERAGE,SUB-COUNT,SUB-MAXIMUM,SUB-MINIMUM和SUB-TOTAL的在线帮助.

让我们说你有这个表:

Amount | Id
-----------
     1 | 1
     2 | 1
    10 | 2
     3 | 2
    -1 | 3
     0 | 3
Run Code Online (Sandbox Code Playgroud)

还有一些例子:

/* 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  | 
Run Code Online (Sandbox Code Playgroud)