可用版本:Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

ORDER BY子句

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

数据库允许以任意顺序返回数据,除非您在 ORDER BY 子句中显式声明该顺序。

SELECT AUTHOR_ID, TITLE
FROM BOOK
ORDER BY AUTHOR_ID ASC, TITLE DESC
 
create.select(BOOK.AUTHOR_ID, BOOK.TITLE)
      .from(BOOK)
      .orderBy(BOOK.AUTHOR_ID.asc(), BOOK.TITLE.desc())
      .fetch();

任何 jOOQ 列表达式(或字段)都可以通过调用 asc()desc() 方法转换为 org.jooq.SortField

jOOQ 对 SELECT .. ORDER BY 的理解

SQL 标准定义了一个“查询表达式”可以排序,并且查询表达式可以包含 UNION、INTERSECT 和 EXCEPT 子句,这些子查询无法排序。 虽然这在 SQL 标准中是这样定义的,但许多以某种方式允许 LIMIT 子句的数据库并不遵守 SQL 标准的这一部分。 因此,jOOQ 允许对所有 SELECT 语句进行排序,无论它们是否作为 UNION 的一部分构造。 角落情况由 jOOQ 内部处理,通过引入合成子选择来遵守正确的语法(如果需要)。

反馈

您对此页面有任何反馈吗? 我们很乐意听取您的意见!

The jOOQ Logo