在子查詢語句中,不能使用Order by語句,除非使用top或for xml
如下面的表t_table:
field1field2
11 eee
11 bbb
44 aaa
33 ddd
55 ccc
有下面的SQL語句:
select* from (select* from t_table order by field1)a[L1]
運行是會出錯的,錯誤信息如下:
The ORDER BY clause is invalid in views,inline functions, derived tables, subqueries, and common table expressions,unless TOP or FOR XML is also specified.
這裏是一個子查詢,在子查詢中使用了order by ,但是沒有使用top 關鍵字,所以會報錯。
如果改成下面的SQL語句:
select* from (select top 3 * from t_tableorder by field1)a
即能得到正確結果。
field1 field2
11 bbb
11 eee
33 ddd