在JOOQ union中选择常量

ben*_*rre 10 java sql jooq

我需要在JOOQ中做相同的操作.

SELECT
  name,
  'companyType' AS resultType
FROM company
UNION ALL
SELECT
  name,
  'userType' AS resultType
FROM "user";
Run Code Online (Sandbox Code Playgroud)

我已经弄清楚如何在JOOQ中使用unionall,但我无法弄清楚如何在选择union时选择结果的常量值.

Luk*_*der 13

你正在寻找DSL.inline(),这正是用于:

inline("companyType").as("resultType")
Run Code Online (Sandbox Code Playgroud)

或者,完整查询:

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

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

import static org.jooq.impl.DSL.*;
Run Code Online (Sandbox Code Playgroud)

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