Mysql ABLE…AS SELECT语法文档显示,可以在SELECT查询之前声明列类型和NOT NULL以及其他选项。但我还没有发现任何文件表明Oracle可以做到这一点。 WITH t(x,y,z) as (select * from TABLE(fn_retu

Mysql ABLE…AS SELECT语法文档显示,可以在SELECT查询之前声明列类型和NOT NULL以及其他选项。但我还没有发现任何文件表明Oracle可以做到这一点。 WITH t(x,y,z) as (select * from TABLE(fn_retu,mysql,sql,oracle,Mysql,Sql,Oracle,ABLE…AS SELECT语法文档显示,可以在SELECT查询之前声明列类型和NOT NULL以及其他选项。但我还没有发现任何文件表明Oracle可以做到这一点。 WITH t(x,y,z) as (select * from TABLE(fn_returning_xcols(3))) select * from t; WITH t(a,b,c,d,e) as ( select * from ( select level as levl from dual connect by

ABLE…AS SELECT语法文档显示,可以在
SELECT
查询之前声明列类型和
NOT NULL
以及其他选项。但我还没有发现任何文件表明Oracle可以做到这一点。
WITH t(x,y,z) as (select * from TABLE(fn_returning_xcols(3)))
select * from t;
WITH t(a,b,c,d,e) as 
(
 select * from 
 (
  select level as levl from dual connect by level <= 5
 )
 PIVOT(max(levl) as l for levl in (1,2,3,4,5))
)
select * from t;
-- Rename a <derived table> to u(b) with Oracle
with u(b) as (select 1 from dual) 
select u.b from u

-- Rename a <derived table> to u(b) with H2, which only knows recursive CTEs
-- Thanks to a comment by user a_horse_with_no_name
with recursive u(b) as (
  select 1
  union all
  select null where false
)
select u.b from u
SELECT null AS a, null AS b, null AS c FROM dual WHERE false
UNION ALL
SELECT <expr>, <expr>, <expr>
FROM <realtable>...