Я столкнулся с странной ошибкой в SQL Server, и мне нужно некоторое объяснение.Предложение SQL Server ORDER BY в подзапросе
Когда я пишу ORDER BY
в подзапросе, например
SELECT a FROM (SELECT * FROM A ORDER BY a) T
он выдает следующее сообщение об ошибке
Поручения п недействительна в представлениях, встроенных функциях, полученные таблицы, подзапросы, и общие табличные выражения, если не указано значение TOP или FOR .
Но когда я использую TOP
в подзапрос работает нормально
SELECT a
FROM
(SELECT TOP 1000000 * FROM A ORDER BY a) T
Таким образом, это означает, что я могу выбрать верхнюю количество строк в A, вместо
SELECT a FROM (SELECT * FROM A ORDER BY a) T
В этом случае , в чем причина ошибки?
Поведение предложения ORDER BY в представлениях, производных таблицах, встроенных функциях и подзапросах в SQL 2000 http://support.microsoft.com/kb/841845/en-us –