2016-11-07 17 views
1
select column 
from table 
order by row_number() over() 
limit 1000 offset 200; 

私は上記の質問をPostgreSQLで持っています。上記のものと同等のSQL Serverが必要です。私は以下を試しました:Postgresクエリと同等のSQL Server

select top 1000 offset 200 column 
from table 
order by row_number() over (ORDER BY column ASC) 
limit 1000 offset 200; 

しかし、次のエラーが発生します。

'17000000'に近い構文が正しくありません。あなたが本当に同じ順序を毎回与えることが保証されてORDER BY句を使用する必要があります

答えて

1

いくつかのデータベースは、オフセット200のINFORMATION_SCHEMA.COLUMNSに対しては何も返しませんが、作業コードのためにここに入れます。

SELECT t.TABLE_NAME, t.COLUMN_NAME 
    , ROW_NUMBER() over (order by t.COLUMN_NAME asc) as RowNumber 
FROM INFORMATION_SCHEMA.COLUMNS as t 
ORDER BY ROW_NUMBER() over (order by t.COLUMN_NAME asc) 
OFFSET 200 ROWS 
FETCH NEXT 1000 ROWS ONLY