SQLクエリの結果をストアドプロシージャ内のランダムな順序に並べ替える最も良い方法は何ですか?SQL Serverのランダムソート
答えて
これはSO# 19412の複製です。ここで私が与えた答えだ:
select top 1 * from mytable order by newid()
SQL Server 2005では、最大、あなたは繰り返しだランダムなサンプルを取得するTABLESAMPLEを使用することができます。
SELECT FirstName, LastName FROM Contact TABLESAMPLE (1 ROWS) ;
これは、にリンクされている他の質問によると、最高の答えではありません:http://stackoverflow.com/questions/19412/how-to-request-a-random-row-in-sql –
この質問は、これは答えとしてマークされているにもかかわらず、これはクエリの結果がランダムにソートされていないので1行しか与えないので、クエリからランダムな行を要求するSO#19412。 –
TABLESAMPLEの先端は金です! – Kong
select foo from Bar order by newid()
あなたが知っているように、ただ1つの値しか生成しないため、RAND()をORDER BYで行うことはできません。したがって、シード値にはキーを使用します。
SELECT RAND(object_id), object_id, name FROM sys.objects ORDER BY 1
またはそれ以上を返す次のクエリを使用しますランダムサンプルの結果:
SELECT * FROM a_table WHERE 0.01 >= CAST(CHECKSUM(NEWID(), a_column) & 0x7fffffff AS float)/CAST (0x7fffffff AS int)
0.01は合計行の1%を意味します。 SQL 2008オンラインブックから
引用:あなたは本当に 個々の行のランダムなサンプルが必要な場合
、TABLESAMPLEを使用してランダムに フィルタアウト行にクエリを変更し、代わりに 。
これは、TABLESAMPLEよりも遅く、大きい表のORDER BY NEWID()よりも高速に実行されます。 – endo64
質問の結果から無作為抽出を探していたので、この特定の解決策は私が探していたものを私に与えましたが、harpoの答えは結果をランダムに並べ替えるでしょう。 –
- 1. PHPランダムソート
- 2. typescript配列ランダムソート順のソート
- 3. SQL ServerサブスクリプションエラーSQL Server 2016
- 4. SQL ServerのSELECTのパフォーマンスがSQL Serverで
- 5. SQL Serverの/ T-SQL:
- 6. SQL ServerのSQLクエリ
- 7. SQL Server 2000とSQL Server 2008の同期
- 8. SQL Server CEとSQL Serverの同期
- 9. SQL Server 2012とSQL Server 2005の同期
- 10. は、SQL Serverでの作業SQL Serverで
- 11. SQL Server ExpressとSQL Serverのパフォーマンス
- 12. SQL Serverは - SQL Server内の同じテーブル
- 13. は、SQL Server 2005ではSQL Serverの
- 14. SQL Server 2000 Serverのエラー
- 15. DjangoのSQLクエリのSQL Server
- 16. SQL ServerのSQLの場合
- 17. SQL Serverの
- 18. SQL Serverの:行
- 19. SQL Serverのsp_tableoption
- 20. SQL Serverの
- 21. スプリットテキスト - SQL Serverの
- 22. SQL Serverのアソシエイティブテーブル
- 23. のSQL Server:
- 24. SQL Serverのストアドプロシージャ
- 25. SQL Serverの:
- 26. SQL Serverのトリガーエラーメッセージ
- 27. SQL Serverのバックエンド
- 28. は、SQL Serverの
- 29. SQL Serverの:クエリ
- 30. SQL Serverの
[SQLでランダムな行を要求する方法は?](http://stackoverflow.com/questions/19412/how-to-request-a-random-row-in-sql) – exhuma