IBM AS400 ISERIES- SELECT SELECT语句的顺序



我们有一个为我们公司管理AS400的供应商。他们的服务之一是通过表我可以使用iSeries查询的表提供文件。但是,该表只有一个列,每个记录只是一个文件中的一行。因此,我需要在维护输入的顺序的同时从表中选择所有记录,但是我没有可以使用订单的列。

我在关系数据库中理解,没有子句订单的选择语句上没有保证的排序顺序。AS400/ISERIES系统是否以相同的方式运行?从我完成的阅读中,它似乎是另一种DBM,但是我找不到任何告诉我选择是否可能会更改/不更改记录插入表中的顺序。每当我运行选择时,我总是会得到看起来正确的顺序,但是如果可以的话,我想保证它。

预先感谢您的任何建议和帮助。

没有明确的ORDER BY子句,可以按任何顺序返回记录SQL Optimizer认为最有效的记录。

db2/400具有"相对记录号"的概念。除非表上的"重用删除记录"设置为 *YES

您可以使用RRN函数通过文件中的物理顺序订购记录:

SELECT * FROM TABLENAME ORDER BY RRN(TABLENAME)

rrn(mytable)添加子句订单>这将以FIFO序列获取记录。但这取决于供应商如何加载表。不要相信这有一天会失败。它将与本机AS400表一起使用。

考虑在选择语句上按子句添加订单以适合您的需求。

这永远有效。如果您需要邮政编码订单中的记录,请通过ZipCode订购。如果您需要名称顺序记录,请按"名称"订购。除非您按子句指定订单。

,没有保证记录顺序。

您的问题。是的,当在选择中没有订单时,选择可以使用db2(AS400)中的订单更改订单。DB2试图使用索引更快地呈现结果。

例如

select * from customer when cust_name like 'Dan%'

cust_name上有一个索引。

结果可能会由cust_name订购。取决于其他因素,但从理论上讲,一个没有子句的顺序选择的选择可以以任何顺序出现,但很可能是表或表主键的索引序列。

相关内容

  • 没有找到相关文章

最新更新