Можно ли в PL\SQL в IF для проверки вставить Select?

Я хочу в проверку условия вставить SELECT который возвращает 1 ячейку со словом "сайт" и проверить, что там именно "сайт" и выполнить код если оно истинно. В примере ниже оно так не работает. (Работаю в Pl\SQL Developer 8.0)

BEGIN
  IF (SELECT type
       FROM table1
       WHERE Partner_name = 'MTS') = 'сайт' THEN
   ....
   ....
  ELSE
   ....
   ....
  END IF;
END;

Выдаёт вот такую ошибку введите сюда описание изображения

Работает оно только если результат Селекта сначала положить в переменную, а её уже проверять в условии(как в примере ниже), но мне в коде куда одобнее было бы, если можно было просто вставлять селект в условие для проверки. Возможно ли это сделать с селектом?

DECLARE
  marketing varchar2(10);
BEGIN
SELECT type
   INTO marketing
   FROM table1
   WHERE Partner_name = 'MTS'
  IF marketing = 'сайт' THEN
   ....
   ....
  ELSE
   ....
   ....
  END IF;
END;

Ответы (1 шт):

Автор решения: CrazyElf

Ну вроде бы именно для этого существует EXISTS:

BEGIN
  IF EXISTS (SELECT *
       FROM table1
       WHERE Partner_name = 'MTS' AND type = 'сайт')
  BEGIN
   ....
   ....
  END
  ELSE
  BEGIN
   ....
   ....
  END;
END;

Я так то в SQL не силён, возможно в вашем конкретном диалекте это пишется по-другому.

→ Ссылка