5

結果をちょうど 10 に切り詰める必要があるためORDER BY、条件の前に句を書きたいのですが、最初にアルファベット順にソートする必要があります。WHERE

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 に答える