Select JOOQ 联合中的常量

Select constant in JOOQ union

我需要在 JOOQ 中做同样的事情。

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

我已经想出如何在 JOOQ 中很好地执行 unionall 但我无法弄清楚如何 select 联合 select 中结果的常数值。

您正在寻找 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