問:為什么sql server不允許在視圖定義使用order by子句?
答: sql server之所以不允許在視圖定義中使用order by子句是為了遵守ansi sql-92標準。因為對該標準的原理分析需要對結(jié)構(gòu)化查詢語言(sql)的底層結(jié)構(gòu)和它所基于的數(shù)學理論進行討論,我們不能在這里對它進行充分的解釋。但是,如果你需要在視圖中指定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結(jié)構(gòu)在同order by子句結(jié)合使用時是非常有用的。只有在同top關(guān)鍵詞結(jié)合使用時,sql server才支持在視圖中使用order by子句。
注意:top關(guān)鍵詞是sql server對ansi sql-92標準的擴展。
新聞熱點
疑難解答
圖片精選