2017-06-04 266 views
0

我有一些数据源希望将相同的分析应用于并最终加载到更大的表数据库中(uniformtable)。不同的源包含不同的列,有时候源包含我需要加入的crosswalk文件。我希望有一个查询将所有来源的数据转换为格式为uniformtable,基于每个来源的唯一键。沿此线的东西:Case-when-if-then在Redshift中控制表的创建

case when source.sourceid = 1 then 
create uniformtable as 
select column1a as uniforma, column1b as uniformb, sourceid from source 
else 
when source.sourceid = 2 then 
create uniformtable as 
select column2a as uniforma, column2b as uniformb, sourceid from source 
end; 

我已经尝试使用的if-then和案件时,做到这一点,但我得到指着我的查询最开始的语法错误。 Redshift是否允许你使用逻辑进行这种控制?

回答

0

不,这个逻辑是不允许的。

CASE语句仅在SELECT语句中有效。

您需要在Amazon Redshift外部执行此逻辑,然后发送最终的SQL来创建表。