4GL中关键字中断的确切用法是什么? 我没有从开放边缘的关键字帮助中获得清晰的想法。 by和break by by关键字的主要区别是什么。
答案 0 :(得分:16)
BREAK或BREAK BY关键字可以在查询中进行分组,而BY只对结果进行排序。 SQL等价是GROUP BY。
BREAK BY允许在生成的迭代中使用多个关键字:
第一OF / LAST-OF 强>
如果是DO,FOR EACH或REPEAT的当前迭代,则返回TRUE值。 。 。 BREAK块是新中断组的第一个/最后一个迭代,并修改所有三个块类型
<强> FIRST / LAST 强>
如果是DO,FOR EACH或REPEAT的当前迭代,则返回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 |