SQL子句随机行在where子句上

时间:2017-02-07 11:46:41

标签: sql-server random

我需要从表中选择10个随机行,但必须在where子句中完成,因为查询是使用另一个只允许修改此部分的应用程序执行的。

我搜索了很多解决方案(select top 10RAND()ORDER BY NEWID(),...),但没有在where子句中工作。

有选择吗?还是某种解决方法?

2 个答案:

答案 0 :(得分:3)

试试这个:

SELECT TYPE, MAX(from_sale), week_day
FROM deliverability.test_repo
WHERE week_day = 'Friday'
GROUP BY TYPE, week_day

答案 1 :(得分:1)

如果您的表具有唯一列,则可以执行以下操作:

SELECT * FROM TABLE WHERE PRIMARYCOLUMN IN (SELECT TOP(10) PRIMARYCOLUMN FROM TABLE ORDER BY NEWID())