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 表达式的主要内容,如果未能解决你的问题,请参考以下文章

SQL如何使用order by语句查询数据表的多字段

SQL语句嵌套 order by 无效

sql语句select group by order by where一般先后顺序

sql语句select group by order by where一般先后顺序

sql语句select group by order by where一般先后顺序

sql的一些知识_order by