首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Case-when或if-then在Redshift中控制表的创建

Case-when或if-then在Redshift中控制表的创建
EN

Stack Overflow用户
提问于 2017-06-05 04:50:00
回答 1查看 823关注 0票数 0

我有几个数据源,我希望对它们应用相同的分析,并最终加载到一个更大的表数据库(uniformtable)中。不同的源文件包含不同的列,有时源文件涉及我需要加入的crosswalk文件。我希望有一个查询,将所有源的数据转换为uniformtable格式,基于每个源的唯一键。大致是这样的:

代码语言:javascript
复制
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和case-when来完成此操作,但得到的语法错误指向查询的最开始位置。Redshift允许你使用if逻辑来进行这种控制吗?

EN

回答 1

Stack Overflow用户

发布于 2017-06-05 05:21:43

不,此逻辑是不允许的。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44358643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档