【发布时间】:2020-12-25 20:57:08
【问题描述】:
我的 ABAP 报告中有一个由字符串组成的内部表。现在我想打乱该表中的项目,即随机化它们在表中的顺序。
是否有任何可用的 ABAP 内置或功能模块来实现这一点,还是我必须手动随机化表格?
【问题讨论】:
-
您是如何填充表格的?如果您通过 SQL 完成,只需将 ORDER BY 排除在等式之外,如果您使用类似 APPEND 的东西,只需将其更改为“INSERT INDEX rnd”(其中 rnd 是随机数
-
看看F052函数组,里面有一些函数模块,用来创建不同类型的随机数(int, p)。 (我相信你必须首先调用 FM RANDOM_INITIALIZE(相同的函数组)。)最简单的方法是在内部表中有一个整数类型字段,为其分配一个随机数(例如在 1 到 10000 之间)并对内部表进行排序通过这个领域。这不会是完美的(从统计随机性的角度来看,但会做到。(我想知道这背后的业务需求是什么......)
-
@VXLozano 数据确实来自数据库表。但仅省略
ORDER BY是不够的,因为在大多数情况下,记录的顺序仍然相同。 -
@JozsefSzikszai 记录一下:业务需求是我有一个必须执行某些任务的用户列表,但是每天应该为用户分配任务的顺序应该不同.
标签: abap internal-tables