Итак, я написал функцию postgreSQL, которая должна выполнять поиск в таблице на основе огромного количества дополнительных входных параметров, которые я группирую с множеством операторов AND. Это один, однако:Функция PostgreSQL несколько строк, возвращаемых из подзапроса в случае case
AND
(
(newcheck IS NULL)
OR
(
newcheck IS NOT NULL AND product.id IN(
CASE WHEN newcheck='New'
THEN
(SELECT product.id FROM product WHERE product.anew IS true)
ELSE
(SELECT product.id from product WHERE product.anew IS false)
END)
)
)
дает мне
ERROR: more than one row returned by a subquery used as an expression
Это не будет помощи много, так как я хочу, чтобы вернуть намного больше, чем один ряд. Значения переменной newcheck будут отправляться из раскрывающегося меню в виде веб-формы, поэтому это могут быть только «Новые» или «Старые». Любые идеи о том, что может вызвать эту проблему?
Проблема - каждый подзапрос возвращает более одной строки и 'CASE' оператор ожидает один результат в каждой отрасли. –