因此,例如我有一个带有字段“sub_id”的表,它没有按升序或降序排序。我想从最小的 sub_id 到最大的 FOR EACH,我该怎么做?

最佳答案

您应该使用关键字 BY。如果您排序的字段未编入索引,这可能会很慢并消耗系统资源。这在大 table 上最为明显。

/* Smallest to largest */
FOR EACH tablename NO-LOCK BY tablename.sub_id:
  /* Do something */
END.

/* Largest to smallest sub_id */
FOR EACH tablename NO-LOCK BY tablename.sub_id DESCENDING:
  /* Do something */
END.

/* With a WHERE clause */
FOR EACH tablename NO-LOCK WHERE tablename.field = "something" BY tablename.sub_id:
  /* Do something */
END.

如果您想更改数据(更新、分配等),上述 NO-LOCK 将不起作用。 NO-LOCK 用于只读操作(如显示数据)。 EXCLUSIVE-LOCK 用于更新/删除等。

关于progress-4gl - 我如何使用 FOR 每个,通过表格查看 OpenEdge 中升序的字段之一?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27012014/

10-12 22:56