2

VMS 上の Oracle RDB でホストされているデータベースのデータ テーブルから、ランダムに選択された任意の数の行を取得するための SQL ステートメントを求められました。

MS SQL では、単純に次のようになります。

SELECT TOP 5 * 
FROM MyTable  
ORDER BY NEWID()   

しかし、RDB/VMS の同等の方法が見つかりません。

「適切な」オラクルは次のようになります。

ORDER BY dbms_random.VALUE

ただし、VMS 上の RDB ではサポートされていないようです。

どんな洞察も大歓迎です。

4

2 に答える 2

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 に答える
0
SELECT *
FROM MyTable 
ORDER BY NEWID()
LIMIT to 5
于 2011-06-29T12:20:38.907 に答える