Подзапросы после THEN
и ELSE
должны быть заключены в круглые скобки:
SELECT * FROM TABLE1 WHERE COLUMN1 = 'YES'
AND COLUMN2 IN (
CASE
WHEN EXISTS (SELECT * FROM TABLE1 WHERE COLUMN1 = 'YES' AND COLUMN2 NOT LIKE '%NO%')
THEN (SELECT COLUMN2 FROM TABLE1 WHERE COLUMN1 = 'YES' AND COLUMN2 NOT LIKE '%YES%')
ELSE (SELECT COLUMN2 FROM TABLE1 WHERE COLUMN1 = 'YES' AND COLUMN2 NOT LIKE '%YES%')
END
)
Это будет работать, только если эти подзапросы не возвращают более 1 строки.Также оба подзапроса одинаковы.Это опечатка?И IN
можно изменить на =
, поскольку CASE
возвращает только 1 значение.