gpt4 book ai didi

java - 如何在 jOOQ 中生成带有 LIMIT 子句但没有 OFFSET 子句的 SQL 语句?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:23:33 28 4
gpt4 key购买 nike

我正在尝试使用 jOOQ 生成以下 SQL 语句:

SELECT id, name
FROM students
ORDER BY id DESC
LIMIT 50;

使用 jOOQ 生成上述语句:

String sql = DSL.using(SQLDialect.POSTGRES).select(
field("id"),
field("name"))
.from("students")
.orderBy(field("id").desc())
.limit(inline(50))
.getSQL();

但我得到以下信息:

select id, name from students order by id desc limit 50 offset ?

如何删除 OFFSET 子句?我知道我可以将偏移值指定为 0,这与省略 OFFSET 子句相同,但我想知道我是否可以从生成的 SQL 语句中完全删除它。

谢谢。

最佳答案

你是对的,jOOQ 3.4.2 目前为 PostgreSQL 呈现了一个 OFFSET 子句,无论它是否由用户通过 API 指定。这可能可以改进。我创建了问题 #3577为此。

目前,在这种情况下并没有真正“简单”的方法来更改生成的 SQL。您可能正在实现 ExecuteListener ,并修补生成的 SQL - 但您还必须摆脱绑定(bind)值。

关于java - 如何在 jOOQ 中生成带有 LIMIT 子句但没有 OFFSET 子句的 SQL 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25438777/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com