【发布时间】:2021-05-25 09:12:16
【问题描述】:
我希望在 3 个表之间执行 UNION,我知道其中 1 个表没有值(空表)。 使用 SAS PROC SQL 时出现错误: 错误:表 WORK.B 没有任何列。
我的代码:
select *
from work.A
union
select *
from work.B
union
select *
from work.C
据我了解,我需要使用 EXIST,以便仅对现有表进行 UNION。
【问题讨论】:
-
错误不是表 B 为空,而是表 WORK.B 没有任何列。我不确定 SAS,但对于联合,您应该从所有表中以相同的顺序和相同的数据类型选择相同数量的列。所以如果你使用 * 那么 A 和 B 的表结构应该是相同的
-
联合一个空表有什么意义呢?
-
@metadata 所有表都有相同的列数和相同的类型和顺序,问题是因为表 B 是空的。
-
执行SQL时,不知道表是否为空。
-
尝试在 select 中使用列名而不是 *