2 つのデータベースがあります。1. オラクル 2. SQL サーバー
どちらも同じテーブルを持っていますTABLE
。テーブルの両方で、いくつかの列で並べ替えて、制限内でデータをフェッチし、それを検証する必要があります(互いに)。制限が 100 ~ 150 であるとします。
私が使用しているSQLの場合
select *
from (
select row_number() over (order by specific_column) as row, *
from Table
) as t
where row between 100 and 150
私が使用しているOracleの場合
select *
from (
select columnname, rownum r
from Table
) a where a.r>=100 and a.r<=150 order by specific_column
しかし、私が得ている結果は、各出力でまったく異なります。
orderbyが最初にsqlserverで機能し、次にrownumでフェッチしている可能性があり、oracleではその逆です。
PS: 私が使用している oracle のバージョンは 7.3.x であり、サブクエリでの order by はサポートされていないことに注意してください。