Redshift - поднять ошибку, когда строки не найдены?

Я пытаюсь добиться следующего в красном смещении -> проверить, возвращает ли запрос какие-либо записи, если да, то запустите другой запрос и верните результаты, если не возникнет ошибка и не будет выполнен основной запрос. Вот как это будет работать на сервере sql:

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

Я с треском провалился с использованием функции CASE redshfit, и кажется, что raiserror не существует?

Любые идеи?


person Petar    schedule 29.05.2017    source источник
comment
Redshift SQL не включает многие элементы процедурного программирования, которые есть в T-SQL (SQL Server), такие как конструкции IF..THEN. Такая логика обычно должна обрабатываться внешним приложением.   -  person Nathan Griffiths    schedule 30.05.2017


Ответы (1)


Если для выполнения скрипта используется psql, попробуйте выполнить ошибку деления на ноль, чтобы условно прервать скрипт, если строки не найдены:

\ установить ON_ERROR_STOP ON

выберите 1/count(*) из [TABLE], где column1 = 'ABC' .... ....

person Alex Oh    schedule 03.01.2018