从Progress OpenEdge数据库中的表中获取前100条记录(例如SELECT TOP 100)



我如何从Progress OpenEdge数据库中的表中获得有限数量的记录?

类似于SQL:

SELECT TOP 100 * FROM MyTable

我能找到的唯一丑陋的解决方案是循环遍历所有记录,并在显示100条记录时中断。但我觉得应该有更好的方法。

如果您正在使用4GL,您可能还想看看使用OPEN QUERY和MAX-ROWS来实现您正在寻找的结果。下面显示了一个带有计数器的传统FOR EACH循环,然后是一个带有MAX-ROWS:

的QUERY
define variable i as integer no-undo.
define frame a with 10 down.
for each customer no-lock break by name:
  i = i + 1.
  display i custNum name discount.
  if i >= 5 then leave.
end.
define query q for customer scrolling.
open query q for each customer no-lock break by name max-rows 5.
do i = 1 to 5 with frame a:
  get next q.
  display i custNum name discount.
end.

如果你正在使用SQL-92引擎,那么像这样:

SELECT TOP 100 FROM pub.customer;

应该可以正常工作。

如果你正在使用4GL引擎,那么你不应该尝试混合SQL和4GL。它只会带来痛苦、不幸和苦恼。4GL不是SQL。有一些SQL-89语句在很久很久以前就因为市场营销的原因被放到了4GL中。试图使用它们会导致严重的情感创伤。

请按连结下载档案。希望这个问题能得到答案OpenEdge数据库

定义变量i为整数。

宽度为320的NO-LOCK:

ASSIGN i = i + 1.

如果I <= 100则显示客户地址平衡城市联系国家信用额度折扣
姓名电话邮编销售代表州条款

相关内容

  • 没有找到相关文章

最新更新