MS Access 选择不同的随机值

Posted

技术标签:

【中文标题】MS Access 选择不同的随机值【英文标题】:MS Access select distinct random values 【发布时间】:2016-08-06 05:47:49 【问题描述】:

如何从 MS Access 表问题的字段答案中选择 4 个 distinct random 值?

SELECT TOP 4 answer,ID FROM question GROUP BY answer ORDER BY rnd(INT(NOW*ID)-NOW*ID)

给出错误信息:

运行时错误“3122”:您的查询不包括指定的 表达式“ID”作为聚合函数的一部分。

SELECT DISTINCT TOP 4 answer,ID FROM question ORDER BY rnd(INT(NOW*ID)-NOW*ID)

给出错误信息:

运行时错误“3093”:ORDER BY 子句 (rnd(INT(NOWID)-NOWID)) 与 DISTINCT 冲突。

编辑: 试过这个:

SELECT TOP 4 *
FROM (SELECT answer, Rnd(MIN(ID)) AS rnd_id FROM question GROUP BY answer)  AS A
ORDER BY rnd_id;

到目前为止似乎有效..

【问题讨论】:

【参考方案1】:

我建议:

SELECT TOP 4 answer
FROM question
GROUP BY answer
ORDER BY Rnd(MIN(ID));

我不认为子查询是必要的。并且在SELECT 上包含随机值似乎没有用。

【讨论】:

【参考方案2】:

我在 2 年前创建了一个简单的测验应用程序,这是我用来从表格中获取随机问题的查询。

SELECT TOP 4 * FROM Questions ORDER BY NEWID()

【讨论】:

NEWID() 在 Access SQL 中不受支持。

以上是关于MS Access 选择不同的随机值的主要内容,如果未能解决你的问题,请参考以下文章

使用联合从 MS Access 表中选择随机记录 [重复]

需要帮助返回 ms-access 测试库的随机顺序多项选择答案

如何在不同的列中选择第一个、第二个和第三个值 - Ms Access

c# - 从 ms access 数据库中随机生成数据

如何让 MS-Access 为我的查询选择不同/正确的执行计划

MS Access - TEXT 字段的排名