SQL的关于ORDER BY 表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL的关于ORDER BY 表达式相关的知识,希望对你有一定的参考价值。

语句是这样的: SELECT top 10 * FROM first_chapter ORDER BY Rnd(ID-timer()) union SELECT top 10 * FROM second_chapter ORDER BY Rnd(ID-timer()) union SELECT top 10 * FROM third_chapter ORDER BY Rnd(ID-timer()) 可是一直不能通过,提示是这样的: 错误类型: Microsoft JET Database Engine (0x80004005) ORDER BY 表达式 (Rnd(ID-timer())) 包含当前查询未选定的字段。只有第一次查询所包含的字段才可以包含在 ORDER BY 表达式中。 我想要的是:有三个表格,我要随机的从每个表格里抽十条记录,然后随机排序,组成一份试卷,请大家指教,谢谢。

参考技术A 一楼说的很好,但是感觉写的语句和楼主的要求还不一样。我这样改,您看是否正确。
SELECT
*
FROM
(
SELECT
TOP
10
*
FROM
FIRST_CHAPTER
ORDER
BY
NEWID()
UNION
SELECT
TOP
10
*
FROM
SECOND_CHAPTER
ORDER
BY
NEWID()
UNION
SELECT
TOP
10
*
FROM
THIRD_CHAPTER
ORDER
BY
NEWID()
)
ORDER
BY
NEWID()

SQL基础-order by

若sql语句中order by指定了多个字段,则怎么排序?

举个例子吧:
order by id desc,time desc

先是按 id 降序排列  (优先)
如果 id 字段 有些是一样的话   再按time 降序排列 (前提是满足id降序排列)





以上是关于SQL的关于ORDER BY 表达式的主要内容,如果未能解决你的问题,请参考以下文章