在 JOOQ 并集中选择常量

2022-09-03 13:28:21

我需要在JOOQ中做相当于这个的事情。

SELECT
  name,
  'companyType' AS resultType
FROM company
UNION ALL
SELECT
  name,
  'userType' AS resultType
FROM "user";

我已经弄清楚了如何在JOOQ中很好地进行unionall,但我无法弄清楚如何在任何一个选择的并集中为结果选择一个常量值。


答案 1

你正在寻找DSL.inline(),它正好用于这个:

inline("companyType").as("resultType")

或者,完整的查询:

using(configuration)
  .select(COMPANY.NAME, inline("companyType").as("resultType"))
  .from(COMPANY)
  .unionAll(
   select(USER.NAME, inline("userType").as("resultType"))
  .from(USER))
  .fetch();

这两个示例都假定您有此静态导入:

import static org.jooq.impl.DSL.*;

更多信息可以在这里找到: http://www.jooq.org/doc/latest/manual/sql-building/bind-values/inlined-parameters


答案 2

推荐