【问题标题】:MS Access select distinct random valuesMS Access 选择不同的随机值
【发布时间】: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;

到目前为止似乎有效..

【问题讨论】:

    标签: sql random ms-access-2010 distinct


    【解决方案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 中不受支持。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-15
      • 2015-06-09
      • 1970-01-01
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      相关资源
      最近更新 更多