Кажется, достаточно просто переместить MAX()
в подзапрос:
(SELECT MAX(Price) FROM Products WHERE Category = 'Food')
Что касается , почему ваша версия не работает. , , ну, разработчики SQL могут знать. В общем случае возвращающие множество подзапросы разрешены только в нескольких контекстах. От руки я могу думать о:
IN
/ NOT IN
EXISTS
/ NOT EXISTS
- оператор, за которым следует
ANY
/ SOME
/ ALL
FROM
пункты
В других случаях подзапросами являются скалярные подзапросы , которые возвращают только один столбец и не более одной строки. Аргументы функции - это скалярные подзапросы, а не подзапросы, возвращающие множество.