可用版本:Dev3.21)| 最新版本 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

FROM子句

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

SQL FROM 子句允许指定任意数量的表表达式来从中选择数据。以下是如何形成常规 FROM 子句的示例

SELECT 1 FROM BOOK
SELECT 1 FROM BOOK, AUTHOR
SELECT 1 FROM BOOK "b", AUTHOR "a"
create.selectOne().from(BOOK).fetch();
create.selectOne().from(BOOK, AUTHOR).fetch();
create.selectOne().from(BOOK.as("b"), AUTHOR.as("a")).fetch();

请在手册关于别名表的部分中阅读更多关于别名的信息。

更高级的表表达式

除了简单的表,您可以将任何任意的表表达式传递给 jOOQ FROM 子句。 这可能包括 Oracle 中展开的游标

SELECT *
FROM TABLE(
    DBMS_XPLAN.DISPLAY_CURSOR(null, null, 'ALLSTATS')
);
create.select()
      .from(table(
          DbmsXplan.displayCursor(null, null, "ALLSTATS")
      ).fetch();

请注意,为了访问 DbmsXplan 包,您可以使用代码生成器来生成 Oracle 的 SYS 模式。

使用 jOOQ 从 DUAL 中选择

在许多 SQL 方言中,FROM 是一个强制子句,在某些方言中则不是。jOOQ 允许您省略 FROM 子句,只返回一条记录。一个例子

SELECT 1 FROM DUAL
SELECT 1
DSL.using(SQLDialect.ORACLE).selectOne().fetch();
DSL.using(SQLDialect.POSTGRES).selectOne().fetch();

请在手册关于DUAL 表的部分中阅读更多关于 dual 或 dummy 表的信息。以下是如何形成常规 FROM 子句的示例

反馈

您对此页面有任何反馈吗? 我们很乐意听取您的意见!

The jOOQ Logo