https://qiita.com/yfujii01/items/a6f1d8a8cf69b0c4e291
1~100なら以下
CONVERT(int,(1 + (RAND(CONVERT(INT, CONVERT(VARBINARY(4), NEWID()))) * (100 – 1 + 1))))
ただし、都度ランダムにふられるので、ばらつきが出る
・SQLでランダムの行数取得する
SELECT * FROM test
WHERE
(ABS(CAST((BINARY_CHECKSUM(*) * RAND()) as int)) % 100) < 10
SQL serverで動作確認ずみ
実行する度に取得レコード数が変化する
・指定の行だけ取得する(総件数の10%を取得)
SELECT TOP 10 PERCENT * FROM test
ORDER BY NEWID()
・10行取得するなら
SELECT TOP 10 * FROM test
ORDER BY NEWID()
SQL serverでランダムな数字を振る
大きなテーブルからランダムに行を取得する方法 - 蒼の王座・裏口
ちょっと古い記事だけど、「Selecting Rows Randomly from a Large Table」をざっくり意訳しました。 多くの行数がある巨大なテーブルから、ランダムにサンプリングしてデータを取得したいこ… 続きを読む »
取得する行数(レコード数)を指定してデータをSELECTする TOP ROWCOUNT [SQLServer]
SQLServerにテーブルを作成してデータを取得する際に、取得する行数を指定したい場合があります。例えば、上位3位までのデータ(レコード)が欲しいので、先頭の3行のみに限定して取得する場合などです。そこで今回は、SQLServerでデータ