2

我被要求使用 SQL 语句从托管在 VMS 上的 Oracle RDB 上的数据库中的数据表中检索任意数量的行,随机选择。

在 MS SQL 中,它只是:

SELECT TOP 5 * 
FROM MyTable  
ORDER BY NEWID()   

但我找不到 RDB/VMS 的等效方法。

“正确的”甲骨文将是:

ORDER BY dbms_random.VALUE

但是,这在 VMS 上的 RDB 中似乎不被支持。

任何见解将不胜感激。

4

2 回答 2

0
SELECT *
FROM MyTable 
ORDER BY NEWID()
LIMIT to 5
于 2011-06-29T12:20:38.907 回答
0

我不知道执行此操作的“RDB 方式”,但如果记录具有顺序 ID,请找出最高编号的 ID,然后通过脚本生成要获取的随机 ID 列表。就像是:

SELECT TOP 1 FROM mytable ORDER BY id DESC;

然后在 Python 中:records = random.sample(range(topId), 5)

于 2011-07-23T01:07:29.053 回答