5

我想ORDER BY在我的条件之前写一个子句,WHERE因为我需要将我的结果截断为 10,但我需要先按字母顺序对它们进行排序。

我知道你不能放在ORDER BY前面,WHERE所以我该怎么做?

我需要执行以下操作:

SELECT *
FROM myTable
ORDER BY TOP10
WHERE ROWNUM <=10
4

2 回答 2

18

您可以为此使用内联视图

SELECT * 
FROM (
 SELECT *
 FROM myTable
 ORDER BY TOP10) T
WHERE ROWNUM <=10
于 2013-08-14T21:12:29.337 回答
4
SELECT * 
FROM (SELECT * FROM myTable RANK() OVER (ORDER BY TOP10) rank) 
WHERE rank <= 10;

有关更多信息,请参阅

编辑:感谢狼更正:

select * from (select mt.*, rank() over (order by top10) rank from mytable mt) 
WHERE rank <= 10
于 2013-08-14T21:14:17.130 回答