T-SQL Part IV: ORDER BY

ORDER BY 返回一個Cursor,並不返回結果集。而試圖將Cursor作爲輸入將產生了錯誤。

所以,下列的SQL語句將產生錯誤:


SELECT VerID, IsComplete
FROM ( SELECT TOP 10 VerID, IsComplete
FROM dbo.T_AOTInfo
ORDER BY VerID DESC ) AS TABLE1;

錯誤:

Msg 1033, Level 15, State 1, Line 4
The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP, OFFSET or FOR XML is also specified.


同樣,試圖將上述語句包裝爲一個View,也會導致同樣的錯誤。


要解決這個錯誤,要麼,移除ORDER BY,要麼使用TOP, OFFSET或者FOR XML。

SELECT VerID, IsComplete
FROM ( SELECT TOP 10 VerID, IsComplete
FROM dbo.T_AOTInfo
ORDER BY VerID DESC ) AS TABLE1;

是爲之記。

Alva Chien
2016.5.19
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章