2017-05-29 61 views
0

我想在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不存在?

任何想法?

+0

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

回答

0

如果使用PSQL执行脚本,尝试通过零误差的除法以有条件地中止脚本如果发现没有行:

\设置ON_ERROR_STOP ON

从[表1/COUNT(*) ] where column1 ='ABC' .... ....