【发布时间】:2014-06-25 09:37:05
【问题描述】:
谁能帮我理解为什么它不起作用?
select top(10) * from
(select * from dbticket order by 1 desc ) a
错误是:
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.
我在第一列中有这个 ID:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
我需要这样的id:
15
14
13
12
11..
【问题讨论】:
-
在派生表之外使用该顺序。
-
根据您的错误消息您的
Subquery uses ORDER BY without specifying TOP within the subquery itself。 1 的顺序是什么? -
查看“除非”部分。所以你可以使用
SELECT TOP(10) * FROM( SELECT TOP 100 PERCENT * FROM dbticket ORDER BY 1 DESC) a -
@TimSchmelter - 你可以,但这只是消除警告并且可能实际上不会执行任何排序 - 所以你不妨说“你可以删除
ORDER BY子句” - 它'将具有相同(保证)的效果。 -
如果你能解释为什么你不只是使用
select top(10) * from dbticket order by 1 desc,我们也许可以提供更多帮助
标签: sql sql-server sql-order-by