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

按列索引排序

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

SQL 标准允许指定整数文字(文字,而非 绑定值!)来引用投影中的列索引(SELECT 子句)。如果您不想重复一个冗长的表达式(您想按该表达式排序),这可能很有用 - 尽管大多数数据库也允许在 ORDER BY 子句中引用 别名列引用

此处给出一个示例

SELECT AUTHOR_ID, TITLE
FROM BOOK
ORDER BY 1 ASC, 2 DESC
 
create.select(BOOK.AUTHOR_ID, BOOK.TITLE)
      .from(BOOK)
      .orderBy(inline(1).asc(), inline(2).desc())
      .fetch();
通常不建议这样做,因为字段索引可能会在 SELECT 子句中发生变化,并且开发人员可能会忘记更新 ORDER BY 中的索引。它主要用于快速且临时的 ad-hoc SQL。另请参阅 关于此主题的“不要这样做”部分

方言支持

此示例使用 jOOQ

select(BOOK.ID).from(BOOK).orderBy(1)

翻译成以下特定方言的表达式

所有方言

SELECT BOOK.ID
FROM BOOK
ORDER BY 1
使用 jOOQ 3.21 生成。早期 jOOQ 版本的支持可能有所不同。 在我们的网站上翻译您自己的 SQL

反馈

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

The jOOQ Logo