Q. ランダムに並べ替えられた結果を取得するにはどうすればよいですか?
A. ランダムに並べ替えられた列を取得するか、ランダムに選択された x 個の列を返すには、乱数を使用できます。ただし、RAND 関数はクエリで 1 つの結果しか返せません。 NOWID 関数によって返された列に対して ORDER BY を実行できます。例を参照してください:
SELECT *
FROM Northwind..Orders
ORDER BY NEWID()
SELECT TOP 10 *
FROM Northwind..Orders
ORDER BY NEWID()
この部分は翻訳が非常に難しいので、無視してください。原文のまま直接移動してください。 無料翻訳。
ただし、この方法ではテーブル全体をスキャンし、計算列を生成して並べ替える必要があることを皆さんに思い出していただきたいと思います。大きなテーブルに対してこのような操作を実行しないことをお勧めします。そうしないと、処理が非常に遅くなります。
Q. クエリ結果をランダムに並べ替えるにはどうすればよいですか?
A. 行をランダムに並べ替えたり、ランダムに選択された x 個の行を返すには、SELECT ステートメント内で RAND 関数を使用できます。ただし、RAND 関数は 1 回だけ解決されます。次のコードに示すように、ORDER BY 句を使用して NEWID 関数の結果に基づいて行を並べ替えることができます。
SELECT *
FROM Northwind..Orders
ORDER BY NEWID( )
トップ 10 を選択 *
Northwind から..Orders
ORDER BY NEWID()
—SQL Server MVPs