MS Access查询设置:随机选10%数据或至少20条(取较多者)
MS Access 实现随机选取10%记录且最少20条的查询方案
直接用SQL语句就能搞定这个需求,核心逻辑是先算出要选的记录数(取总记录数10%和20的最大值),再随机排序后取对应条数的记录。
具体SQL代码
SELECT TOP (SELECT Max(Round(Count(*)*0.1, 0), 20) FROM 你的表名) * FROM 你的表名 ORDER BY Rnd(ID);
代码说明
- 子查询
SELECT Max(Round(Count(*)*0.1, 0), 20) FROM 你的表名:- 先统计表的总记录数,算出其10%并四舍五入
- 把这个结果和20取最大值,确保当10%的数量不足20时,自动取20条
ORDER BY Rnd(ID):借助主键ID生成随机排序规则,保证选取的随机性。如果你的表没有主键,换成ORDER BY Rnd()也可以,只是每次刷新查询会重新随机一次结果。- 记得把代码里的
你的表名替换成你实际使用的表名称。
验证示例
- 当表总记录数为180时,子查询计算结果为
Max(18,20)=20,查询会随机选取20条记录 - 当表总记录数为250时,子查询计算结果为
Max(25,20)=25,查询会随机选取25条记录
内容的提问来源于stack exchange,提问作者Uday_H
相关产品推荐
相关产品推荐

