У меня довольно сложный запрос, который отлично работает в Access и MySQL, но не работает в MS SQL. Получите сообщение «Неверный синтаксис рядом с ключевым словом« ORDER ». Цель запроса - получить 100 лучших заказов с ускоренной доставкой (USPS Express).Почему этот подзапрос не выполняется?
SELECT *
FROM ( SELECT
TOP 100 o.orderid
, (
select 1
from orders
where orderid = o.orderid
and oshipmethod = 'USPS Express'
) as ship_priority
FROM orders o
WHERE o.order_status = 10
)
ORDER BY ship_priority DESC
Понятная причина, по которой этот запрос не удается?
Внутренний TOP не имеет соответствующее предложение ORDER BY. Точно, какие TOP 100 строк вы ожидаете? –
Я не уверен, почему люди думают, что версия SQL Server, которую они используют, должна быть такой хорошо охраняемой тайной. Это часто является важной частью решения. –
Хороший улов Аррон, я переместил TOP 100 на внешний выбор, где он принадлежит – rhall