不允許在SQL Server視圖定義使用ORDER BY子句的解決
我們遇到不允許在SQL Server視圖定義使用ORDER BY子句的問題,應該如何處理呢?下面為您分析了該問題的原因,并提出了解決方法,希望對您能有所幫助。
SQL Server之所以不允許在視圖定義中使用ORDER BY子句是為了遵守ANSI SQL-92標準。
因為對該標準的原理分析需要對結構化查詢語言(SQL)的底層結構和它所基于的數學理論進行討論,我們不能在這里對它進行充分的解釋。但是,如果你需要在視圖中指定ORDER BY子句,可以考慮使用以下方法:
- USE pubs
- GO
- CREATE VIEW AuthorsByName
- AS
- SELECT TOP 100 PERCENT *
- FROM authors
- ORDER BY au_lname, au_fname
- GO
Microsoft在SQL Server 7.0中引入的TOP結構在同ORDER BY子句結合使用時是非常有用的。只有在同TOP關鍵詞結合使用時,SQL Server才支持在視圖中使用ORDER BY子句。
注意:TOP關鍵詞是SQL Server對ANSI SQL-92標準的擴展。
【編輯推薦】