我需要每次从表格中获取10行随机数据,但在重复查询时这些行不应重复。
如果我获取所有行,则会从第一行重新开始重复,例如表格有20行,第一次获取10行随机数据,第二次我需要获取剩下的10行,第三次查询时我需要再次获取10行随机数据。
目前我用以下语句来获取10行随机数据:
但是MSDN建议使用以下查询:
为了获得良好的性能,但是这个查询并不能返回恒定的行数。请您提出一些建议。
如果我获取所有行,则会从第一行重新开始重复,例如表格有20行,第一次获取10行随机数据,第二次我需要获取剩下的10行,第三次查询时我需要再次获取10行随机数据。
目前我用以下语句来获取10行随机数据:
SELECT TOP 10 *
FROM tablename
ORDER BY NEWID()
但是MSDN建议使用以下查询:
SELECT TOp 10 * FROM Table1
WHERE (ABS(CAST(
(BINARY_CHECKSUM(*) *
RAND()) as int)) % 100) < 10
为了获得良好的性能,但是这个查询并不能返回恒定的行数。请您提出一些建议。