8

私はオンライン質問アプリケーションに取り組んでいます。

データベースからレコードをフェッチしています。

10セットで1000問出題しSQL databaseています。つまり、各セットには 100 の質問が含まれています。各セットからランダムに 20 問ずつ取るにはどうすればよいですか? 各セットから (要求に応じて) 2 つのランダムな質問を選択するにはどうすればよいですか?

4

3 に答える 3

3

試す:

SELECT TOP 20 * FROM [YourTable] ORDER By NEWID()

NEWID()の詳細。

于 2012-12-19T06:13:46.373 に答える
2

各グループから20 のランダムな質問を取得する必要がある場合は、SQLFiddle の例を次に示します。SetNumここにセットIDがあります

select * from 
(
select t.*, 
ROW_NUMBER() 
over (partition by setNum order by NewId()) rNum from t
) t2 where rNum<=20
于 2012-12-19T06:28:34.160 に答える
1

2各セットからランダムな質問が必要な場合は、これを試してください...

SELECT TOP 2 * FROM (SELECT * FROM [YourTable] WHERE SET_ID = 1) ORDER By NEWID()
UNION
SELECT TOP 2 * FROM (SELECT * FROM [YourTable] WHERE SET_ID = 2) ORDER By NEWID()
UNION
.
.
.
.
UNION
SELECT TOP 2 * FROM (SELECT * FROM [YourTable] WHERE SET_ID = 10) ORDER By NEWID()
于 2012-12-19T06:28:11.253 に答える