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