【问题标题】:Redshift - raiseerror when no rows found?Redshift - 找不到行时引发错误?
【发布时间】:2017-05-29 17:59:23
【问题描述】:

我正在尝试在 redshift 中实现以下目标 -> 检查查询是否返回任何记录,如果是,则运行另一个查询并拉回结果,如果没有引发错误并使主查询失败。这就是它在 sql server 中的工作方式:

 IF exists (SELECT * from [TABLE] where COLUMN1 = 'ABC')
    SELECT [COLUMN2] from [TABLE] where COLUMN1 = 'ABC'
       ELSE  RAISERROR ('Error',16, 1);

我在使用 redshfit CASE 函数时失败了,似乎 raiserror 不存在?

有什么想法吗?

【问题讨论】:

  • Redshift SQL 不包含 T-SQL (SQL Server) 中的许多过程编程元素,例如 IF..THEN 构造。这种逻辑通常需要由外部应用程序处理。

标签: amazon-redshift raiserror


【解决方案1】:

如果使用 psql 执行脚本,如果没有找到行,请尝试除以零错误以有条件地中止脚本:

\设置 ON_ERROR_STOP ON

从 [TABLE] 中选择 1/count(*),其中 column1 = 'ABC' …… ....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 2020-06-15
    • 2019-11-04
    • 2014-11-15
    • 1970-01-01
    相关资源
    最近更新 更多