首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Jooq与SQL Server如何选择前N个结果

Jooq与SQL Server如何选择前N个结果
EN

Stack Overflow用户
提问于 2019-06-11 22:51:24
回答 1查看 609关注 0票数 1

在我们的项目中,我们使用了两个数据库,一个是postgres,一个是mssql。我们使用Jooq来查询这些数据库,而使用postgres,一切都非常简单!

但在使用mssql时,我们面临一些麻烦。任务是选择前10个值,假设我们有以下java代码:

代码语言:javascript
复制
DSL.using(conn)
.select(USE_CASE.asterisk())                                                                                                                  
.from(USE_CASE)
.where(USE_CASE.RECORD_ACTIVE.eq(true))                                                                                                                                     
.orderBy(USE_CASE.CREATED_ON.desc())                                                                                                                                     
.limit(10)
.offset(0)                                                                                                                                                                                                
.fetch(new UseCaseMapper()))

这就像postgres的护身符一样,但在mssql上,我们得到了以下错误:

代码语言:javascript
复制
Execution exception[[CompletionException: org.jooq.exception.DataAccessException: 
SQL [select "park"."dbo"."use_case".* from "park"."dbo"."use_case" where
"park"."dbo"."use_case"."record_active" = ? 
order by "park"."dbo"."use_case"."created_on" desc limit ?]; 
Incorrect syntax near 'limit'.]]

我知道对于mssql,等价的查询应该是这样的,

代码语言:javascript
复制
select top 10 * 
from use_case 
where record_active = true
order by created_on desc;

如何更改java代码以获取mssql中的限制记录?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56546414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档