我是Teradata SQL的新手。我正试图写一个查询如下
Create table abc as
(
with datasets as
(
select * from tableA
UNION
select * from tableB
) );
我得到一个错误:
3707
这是你想要的吗?
Create table abc as
select * from tableA
UNION
select * from tableB;
当您使用CTE时,您应该在FROM
子句中引用CTE。但是,不需要CTE。
您应该始终显示准确的错误消息,Create Table As
的语法有一个必需的参数:
Create table abc as
(
select * from tableA
UNION
select * from tableB
) WITH DATA;
你真的需要UNION
吗?UNION ALL
将提高性能,因为它避免了DISTINCT处理。
不要忘记定义主索引,因为CREATE TABLE as SELECT将删除所有索引。此外,所有列都将是NULL。要解决此问题,最好使用创建表
Create table abc as tableA WITH NO DATA; -- exact copy
然后是
insert into abc
select * from tableA
UNION
select * from tableB