我正在使用jOOQ CommonTableExpression从表中获取不同的周末日期的列表。它是使用多个cte的大型查询中最短的cte。我有在postgres中运行的查询,但在jOOQ中没有正确的查询。
根据WITH的jOOQ手册页:
// Code for creating a CommonTableExpression instance
name("t1").fields("f1", "f2").as(select(val(1), val("a")));
我试过了:
import org.jooq.DSL.select;
MyLog lg = MY_LOG.as("lg"); // a table generated by jOOQ.
CommonTableExpression cteWkend = name("cteWkend")
.fields("wkend")
.as(select((lg.WKEND)).distinctOn(lg.WKEND).from(lg).fetch());
正在从intelliJ收到此错误:
因为DerivedColumnList1中的Select 不能应用于org.jooq.Result <org.jooq.Record1 >
看来问题出在.as(select ...)内,并且我在(select ...)和.as()之间的类型不匹配,这期望有所不同。
搜索使我回到引用的jOOQ WITH手册页面,该页面给出了一个非常简单的示例。我一直未能找到一个平凡的例子,向我展示应该去哪里,我在做什么错,或者为什么错。
有人可以在这里指出正确的方向吗?
fetch()在此处删除此呼叫:
CommonTableExpression cteWkend = name("cteWkend")
.fields("wkend")
.as(select((lg.WKEND)).distinctOn(lg.WKEND).from(lg) /* .fetch() */);
您不希望在将其结果传递到公用表表达式之前执行公用表表达式中的子查询
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。