此查询:
SELECT colour FROM ColourView
EXCEPT SELECT colour FROM SkinColourExceptionsView
WHERE race = 'Human' ORDER BY RANDOM() LIMIT 1
生成以下异常:
1st ORDER BY term does not match any column in the result set
但是,将ORDER BY RANDOM()
更改为ORDER BY colour
可以产生结果(按颜色字母顺序排序,而不是随机排序)。
下面建议ORDER BY RANDOM() LIMIT 1
应该可以工作:Select random row from a sqlite table。
有人能解释一下为什么我的查询不起作用吗?
1条答案
按热度按时间rlcwz9us1#
在复合查询中,ORDER BY术语必须与结果集中的某个列匹配。
您可以通过将复合查询移入子查询来绕过此限制:
或者,重写查询以使用不同的筛选机制: