0

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 はサポートされていないことに注意してください。

4

0 に答える 0