可以在 Redshift 中完成 if-then-else 逻辑吗?

Posted

技术标签:

【中文标题】可以在 Redshift 中完成 if-then-else 逻辑吗?【英文标题】:Can if-then-else logic be done in Redshift? 【发布时间】:2014-07-10 04:46:57 【问题描述】:

我是RedShift 的新手,但对MSSQL 很有经验。我想知道是否有任何方法可以在Redshift 中编写 if-then-else 逻辑?

基本上我想在Redshift中运行这个逻辑:

if ((select count(*) from a) - (select count(*) from b)) = 0 then 
   drop table a;

提前致谢!

【问题讨论】:

【参考方案1】:

Redshift 不支持过程语句,因此您最好在应用程序代码中处理这个问题。如果您必须在 SQL 内部执行此操作,那么类似的方法可能会有所帮助:

delete from a where (select count(*) from a) = (select count(*) from b);

这不会删除表格,而是在满足您的条件时删除表格中的所有行。

【讨论】:

以上是关于可以在 Redshift 中完成 if-then-else 逻辑吗?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 Redshift 中并行运行查询?

根据 Redshift 中其他表的条目在表中插入值

如何(以编程方式)知道何时在 PostgreSQL/Amazon Redshift 上完成查询?

用于复制的 Redshift ROLLBACK

Redshift 中针对多个更新语句的性能调整

如何在 AMAZON REDSHIFT 中将 userip 转换为整数