У меня есть курсор объявление здесь:Почему в этом объявлении курсора нет скобок?
declare c cursor
for (select ProductName, ListPrice
from Products
where ListPrice > 700)
Но если добавить order by
статью, я получаю сообщение об ошибке:
declare c cursor
for (select ProductName, ListPrice
from Products
where ListPrice > 700
order by ListPrice desc)
Ошибка: Incorrect syntax near the keyword 'order'.
Но ошибка исчезнет, если Я забираю круглые скобки:
declare c cursor
for select ProductName, ListPrice
from Products
where ListPrice > 700
order by ListPrice desc
Возможно, я немного неясен в отношении того, что скобки в SQL Server. Что дает? Почему бы предложение order by
взаимодействовать с круглыми скобками таким образом?
SQL-серверу не нравится 'order by' в подзапросах (если у вас также нет' top'). Я предполагаю, что он интерпретирует запрос в круглых скобках как подзапрос, потому что они не нужны. –
Это имеет смысл. Вы должны положить это в ответ, чтобы я мог дать вам кредит. – Indigenuity