如果想从一个查询结果中查询数据,而这个查询结果中使用了 order by 关键字,则像下面的语句则会出错,
select * from (select * from tbl_a order by value desc) where a_id <3
错误:”除非同时指定了 TOP,否则 ORDER BY 子句在视图、内嵌函数、派生表和子查询中无效。“
像这种不想使用top的地方 而必须使用top,不知道有什么好的解决方法。难道有别的写法,不得而知。希望各位指点。
现寻觅得一方法,就是让 top 全部的数据 ,就是 top 100 percent.
如下方法,则可解决问题。
select * from (select top 100 PERCENT * from tbl_a order by value desc) as a where a_id <3
不知道还有什么更好的方法没?