我想ORDER BY
在我的条件之前写一个子句,WHERE
因为我需要将我的结果截断为 10,但我需要先按字母顺序对它们进行排序。
我知道你不能放在ORDER BY
前面,WHERE
所以我该怎么做?
我需要执行以下操作:
SELECT *
FROM myTable
ORDER BY TOP10
WHERE ROWNUM <=10
您可以为此使用内联视图
SELECT *
FROM (
SELECT *
FROM myTable
ORDER BY TOP10) T
WHERE ROWNUM <=10
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