2011-10-13 8 views
13

Oracleのテーブルからランダムな行を選択するこの解決策が見つかりました。実際に行をランダムにソートしますが、ランダムな結果の最初の行のみをフェッチできます。テーブルからのOracleランダム行

SELECT * 
FROM table 
ORDER BY dbms_random.value; 

どのように動作するのか分かりません。 ORDER BYの後、ソートに使用する列にする必要があります。私は "dbms_random.value"が0より小さい値を返すことを知っています。この現象は説明できますか、それともそうですか?あなたはdbms_random.valueで注文する場合は

おかげで

答えて

23

あなたも、このようにそれを考えることができます:数3 = 3番目の列

+0

天才ソリューションこの例では

SELECT col1, col2, dbms_random.value FROM table ORDER BY 3 

を –

7

、表現することにより、ないcolumn.ForのOracle受注はすべてのレコードOracleは、ランダムな数を計算し、この番号順。同様に

は、このようなものです:

select * from emp order by upper(ename); 

あなたが関数に基づいてによって順序を持っています。

関連する問題