随机记录选择 - VMS / RDB

发布于 2024-11-17 17:51:47 字数 326 浏览 4 评论 0原文

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

在 MS SQL 中,它只是:

SELECT TOP 5 * 
FROM MyTable  
ORDER BY NEWID()   

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

“正确的”Oracle 应该是:

ORDER BY dbms_random.VALUE

但是,VMS 上的 RDB 似乎不支持这一点。

任何见解将不胜感激。

I have been asked for a SQL statement to retrieve an arbitrary number of rows, randomly selected, from a data table in a database hosted on Oracle RDB on VMS.

In MS SQL, it would simply be:

SELECT TOP 5 * 
FROM MyTable  
ORDER BY NEWID()   

But I cannot find an equivalent method for RDB/VMS.

"Proper" Oracle would be:

ORDER BY dbms_random.VALUE

However, that does not appear to be supoprted in RDB on VMS.

Any insights would be greatly appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冬天旳寂寞 2024-11-24 17:51:47
SELECT *
FROM MyTable 
ORDER BY NEWID()
LIMIT to 5
SELECT *
FROM MyTable 
ORDER BY NEWID()
LIMIT to 5
深爱不及久伴 2024-11-24 17:51:47

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

SELECT TOP 1 FROM mytable ORDER BY id DESC;

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

I don't know the "RDB way" to do it, but if the records have sequential IDs, find out the hightest-number ID and then by scripting generate a random list of IDs to fetch. Something like:

SELECT TOP 1 FROM mytable ORDER BY id DESC;

Then in Python: records = random.sample(range(topId), 5)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文